Runtime.getRuntime()。exec()不能在Java Eclipse中工作

时间:2015-06-08 08:19:22

标签: java python eclipse

我正在运行一个位于Eclipse项目文件夹中的python脚本,其中包含以下Java代码:

Process p = Runtime.getRuntime().exec("python pythonscript.pyw");
p.waitFor();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println(in.readLine());

我的控制台总是读取null并且我的p.exitValue()是2.但是,在Windows命令提示符下键入以下内容工作正常,我得到正确的输出:

C:\users\user\workspace\project>python pythonscript.pyw

这是否与在Eclipse中指定我的目录有关?

2 个答案:

答案 0 :(得分:0)

你可以运行这样的命令:

String scriptDir = "./some dir";
Process p = Runtime.getRuntime().exec("cmd /c \"cd " + scriptDir + " && python pythonscript.pyw\"");

答案 1 :(得分:0)

感谢@aioobe的链接!在检查了ProcessBuilder.environment()后,我意识到Python不在那里(即使它在我的PATH系统环境变量中,很奇怪吧?) 所以我包含了我的pythonw.exe的绝对路径,它工作得很好:)这是我编辑的代码:

Process p = Runtime.getRuntime().exec("C:/python34/pythonw.exe pythonscript.pyw");