我有一个在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脚本谢谢
答案 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