【问题标题】:executing a python script on windows using java Runtime.exec使用 java Runtime.exec 在 Windows 上执行 python 脚本
【发布时间】:2011-07-20 23:03:18
【问题描述】:

我有一个在 Windows 上运行并使用 win32 扩展和 WMI 获取一些信息的 python 脚本。如果我使用命令行运行脚本,它会完美执行。但是,如果我尝试使用 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 脚本吗?

谢谢

【问题讨论】:

    标签: java python wmi


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 2017-05-29
      • 2011-05-13
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      相关资源
      最近更新 更多