Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Runtime.getRuntime().exec()赢了';不能在JavaEclipse中工作_Java_Python_Eclipse - Fatal编程技术网

Runtime.getRuntime().exec()赢了';不能在JavaEclipse中工作

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

我正在使用以下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());
我的控制台总是读取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应用程序的工作目录中。