我想了解Jython。我有一些用Python编写的算法,我想用Java集成。 Jython文档对我来说非常复杂。我可以从中获得的是,我可以通过嵌入它们来运行Java中的单个Python语句:
interp = new PythonInterpreter();
interp.exec("import sys");
interp.exec("print sys");
但我无法嵌入我的巨型算法。我需要运行py脚本。有没有办法做到这一点?我可以获得一个hello world示例,其中print("hello")
语句是在py脚本文件中编写的,输出是在Java控制台上显示的吗?
答案 0 :(得分:2)
Jython是更好的选择
否则你可以使用命令提示符从java运行python程序并在java中收集输出
例如:
ProcessBuilder builder = new ProcessBuilder(
"cmd.exe", "/c", "C:\\Python27\\python.exe C:\\Users\\Bens\\Desktop\\test.py");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}