如何使用Python运行可执行的Java文件?

时间:2018-01-29 15:07:23

标签: java python executable

我有一个名为“ program.exe ”的外部程序,我希望通过Python调用来运行它。关键是,这个可执行文件是用Java构建的(我不是程序员) 通过在文件浏览器中单击此文件,它运行没有任何问题,但使用Python它失败了。

我试过了:

  • 使用os.system
  • os.startfile(它是一台Windows机器)
  • subprocess.Popen

获取错误消息,如:

  • FindClass失败
  • 线程“main”java.lang.NoClassDefFoundError
  • 中的异常

似乎这是一项简单的任务,但每次尝试都失败了。 对我有些暗示?

1 个答案:

答案 0 :(得分:0)

找到了解决方案。这与.exe-File是用Java编译的事实无关。出错的原因是缺少参数" cwd",它们定义了工作目录。

import subprocess
subprocess.Popen("C:\\Folder\\bin\\program.exe", cwd="C:\\Folder\\bin")

要从Shell导出答案,可以尝试这样做:

import subprocess
ShellOutput=subprocess.Popen("C:\\Folder\\bin\\program.exe", cwd="C:\\Folder\\bin", stdout=subprocess.PIPE)
print(ShellOutput.communicate()[0].decode("utf-8"))

使用Python 3.6评估示例