使用java Runtime.exec在Windows上执行python脚本

时间:2011-07-20 23:03:19

标签: java python wmi

我有一个在Windows上运行的python脚本,并使用win32扩展和WMI来获取一些信息。如果我使用命令行运行脚本,它将完美执行。但是,如果我尝试使用java Runtime.exec(“python myscript.py”)运行相同的脚本,它似乎在waitFor()上被阻止。代码是这样的:

Process p = Runtime.getRuntime().exec("python myscript.py");
int exitCode = p.waitFor();

如果我尝试将这个相同的java代码与一些非常简单的python脚本(如

)一起使用
print "hello world"

我将exitCode设为0,这意味着它可以工作。我可以使用java Runtime.exec()?

执行导入WMI库的python脚本

谢谢

1 个答案:

答案 0 :(得分:3)

一个可能的原因是您的IO缓冲区已满并且需要刷新,因此请尝试在java代码(example code)中从您的Process刷新stdout和stderr。

或者,您可以尝试将所有输出重定向到NUL或带有以下其中一个参数的文本文件到exec:

cmd.exe /c python myscript.py > NUL 2>&1

cmd.exe /c python myscript.py > output.txt 2>&1
相关问题