![](/img/trans.png)
[英]How to get java getRuntime().exec() to run a command-line program with arguments?
[英]How to Run a Python Program that Takes Command-Line arguments from within a Java Program
我知道要从Java程序中运行另一个Java程序,你可以使用如下代码:
Runtime.getRuntime().exec("/**A command goes here*/")
但是,我如何运行一个采用命令行参数的Python程序? 更具体地说,我的Java程序将文件作为命令行参数。 然后我将此文件传递给Python程序,然后在同一目录中生成另一个文件。 我将能够访问这个新文件。
我可以简单地打电话:
Runtime.getRuntime().exec("python /**directory_of_the_python_program arguments_for_program*/");
我对“exec(...)”里面的内容也有点困惑。
尝试捕获标准输出,因此您可以使用python中的print
输出到此流:
try {
Process p = Runtime.getRuntime().exec("python yourProgram.py thearg1 thearg2");
p.waitFor();
InputStream stderr = proc.getOutputStream();
InputStreamReader in = new InputStreamReader(stdout);
BufferedReader reader = new BufferedReader(in);
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println("Python says: " + line);
}
int exitVal = proc.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
在你的python程序中,输出到Java程序,使用print如:
print 'Hi!'
要查看Java程序发送给您的内容,可以使用sys.argv
:
print 'The Java program sent me: ', str(sys.argv)
注意:我不是python专家,并没有做太多。 如果我的语法错误,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.