如何使用Java Process运行python管道命令?

时间:2012-12-09 03:59:58

标签: java python pipe

我想在Java中运行python命令。

命令的格式如下:

python abc.py TAG < xyz.txt

当我使用Java的进程时:

Process p=Runtime.getRuntime().exec("python abc.py TAG < xyz.txt");

我得到一个不正确的参数错误,因为< xyz.txt被解释为abc.py的参数,而不是管道xyz.txt的终端含义。

有没有办法运行具有管道功能的java命令?

1 个答案:

答案 0 :(得分:2)

exec()不涉及shell。你不能做那样的事情。

您需要exec()一个shell并让 it 在您尝试时运行python进程,或者您需要exec() python进程,打开并阅读带有Java的xyz.txt文件,然后将数据发送到exec'd进程的标准(您可以从Process对象获取该流)。