从Java中的Python脚本调用和接收输出?


问题内容

从Java执行Python脚本并接收该脚本的输出的最简单方法是什么?我一直在寻找不同的库,例如Jepp或Jython,但是大多数库都已过时。库的另一个问题是,如果我使用库,则需要能够轻松地在源代码中包含一个库(尽管我不需要为库本身提供源代码)。

因此,最简单/最有效的方法是简单地执行诸如使用runtime.exec调用脚本之类的操作,然后以某种方式捕获打印输出吗?或者,即使这对我来说很痛苦,我也可以将Python脚本输出到一个临时文本文件,然后以Java读取文件。

注意:Java和Python之间的实际通信不是我要解决的问题的要求。但是,这是我可以想到的轻松执行需要完成的操作的唯一方法。


问题答案:

不知道我是否正确理解了您的问题,但是如果您可以从控制台调用Python可执行文件,并且只想捕获Java输出,则可以使用exec()JavaRuntime类中的方法。

Process p = Runtime.getRuntime().exec("python yourapp.py");

您可以在此处阅读有关如何实际读取输出的信息:

http://www.devdaily.com/java/edu/pj/pj010016

还有一个Apache库(Apache exec项目)可以为您提供帮助。你可以在这里读更多关于它的内容:

http://www.devdaily.com/java/java-exec-processbuilder-
process-1

http://commons.apache.org/exec/