代码实现
查到的方法有两种,一种是Jython,第二种是Runtime.getRuntime(),我用的是Runtime.getRuntime()的执行方式,直接贴代码。
Java的PythonExec类
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PythonExec {
public static void main(String[] args) throws InterruptedException, IOException {
String exe = "python";
String command="E:\\project\\java_practice\\src\\test.py";
String cmdArr = exe + " " + command;
Process process = Runtime.getRuntime().exec(cmdArr);
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
int status = process.waitFor();
if (status == 0) {
System.out.println("执行成功");
} else {
System.out.println("执行失败");
}
}
}
python脚本文件
print(1+1)
def testpython():
print('This is a python script')
print("这是一个python文件")
if __name__ == '__main__':
print('Start executing Python')
testpython()
print('End executing Python')
补充说明
如果执行失败,可以现在本地用命令执行一下python脚本,看有无报错,有可能是因为第三方依赖包没有下载或者语法本身有错误。
先简单实现了一下,后续有复杂逻辑会进行补充。有问题也欢迎指正,谢谢!