Runtime.getRuntime().exec()赢了';不能在JavaEclipse中工作
我正在使用以下Java代码运行位于Eclipse项目文件夹中的python脚本:Runtime.getRuntime().exec()赢了';不能在JavaEclipse中工作,java,python,eclipse,Java,Python,Eclipse,我正在使用以下Java代码运行位于Eclipse项目文件夹中的python脚本: Process p = Runtime.getRuntime().exec("python pythonscript.pyw"); p.waitFor(); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); System.out.println(in.readLine()); 我的控制台总是读取nu
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中指定我的目录有关吗?您可以运行以下命令:
String scriptDir = "./some dir";
Process p = Runtime.getRuntime().exec("cmd /c \"cd " + scriptDir + " && python pythonscript.pyw\"");
感谢@aioobe的链接!检查ProcessBuilder.environment()后,我意识到Python不在其中(即使它在我的PATH系统环境变量中,奇怪吧?) 因此,我包含了pythonw.exe的绝对路径,它工作得很好:)这是我编辑的代码:
Process p = Runtime.getRuntime().exec("C:/python34/pythonw.exe pythonscript.pyw");
是的,很有可能。确保
exec
找到了python
。(相关问题:)如果运行Runtime.getRuntime().exec(“path”);会发生什么情况?您的Java文件和pythonscript.pyw文件应该在同一目录下才能运行。如果您可以在eclipse之外尝试此操作,您可以检查它是否工作。确保.class文件和.pyw位于同一文件夹中。您应该将pyw脚本放在运行Java应用程序的工作目录中。