背景需求
最近项目中有需要 Java 调用 Python 的需求,正好博主之前用 Python 写脚本的时候采用过 Java 调用 Python 脚本,正好回顾一下
代码实现
python 代码
py 代码很简单,这里只做演示,不涉及具体业务
Java 代码
- 引入 maven 依赖
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
// 版本具体参考 maven 仓库版本
<version>2.7.2</version>
</dependency>
- 代码实现
pythonInterpreter.get
中第一个参数为 python 函数的名字,第二个参数为返回的对象类型pythonInterpreter.execfile
有几个重载方法,可点击源码自行查看test.call
可传参也可不传参,具体要求以 pyhton 函数为依据;如果需要传参,这里需要注意传参类型为 python 所需的数据类型,即 PyObject 及其子类,这里为 PyInteger
实现结果
- 这里仅作输出使用,实际业务场景中需根据具体返回数据做不同业务处理
实践总结
- 主要为:
PythonInterpreter
- 多个 py 脚本文件可合成一个
- Java 中常见的并发问题,这里需要注意,常用操作就是调用 py 脚本时加锁,具体根据业务实现来
- 插件官网地址:https://www.jython.org/download.html