是否可以使用Spring Batch来运行Python程序? Jython不是一个选项(因为依赖于许多Python库)。
答案 0 :(得分:6)
如果你愿意,SystemCommandTasklet
允许你执行你想要的任何shell命令,包括python脚本。您可以在此处阅读文档:http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/core/step/tasklet/SystemCommandTasklet.html
答案 1 :(得分:0)
您可以将python程序称为可执行文件。
这样做的玩具python程序是:
import java.io.*;
class Interact {
static public void main(String[] args) throws IOException {
Process p = Runtime.getRuntime().exec("python3 python_program.py arg1 arg2");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
}
}
如果python_program.py是以下
import sys
if __name__ == "__main__"
print("my args are",sys.argv[1:])
结果应该是
my args are ['arg1', 'arg2']
当然,对于更完整的程序,您应该阅读stderr,检查返回代码等...