我想在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命令?
答案 0 :(得分:2)
exec()
不涉及shell。你不能做那样的事情。
您需要exec()
一个shell并让 it 在您尝试时运行python进程,或者您需要exec()
python进程,打开并阅读带有Java的xyz.txt
文件,然后将数据发送到exec'd进程的标准(您可以从Process
对象获取该流)。