【问题标题】:Difficulty Executing .jar file via python on Windows 7在 Windows 7 上难以通过 python 执行 .jar 文件
【发布时间】:2014-11-19 00:01:44
【问题描述】:

我在让 python 通过 Windows 7 命令行执行 .jar 文件时遇到了一些困难。我的代码如下:

import subprocess
subprocess.call(['java', '-jar', 'file.jar'], shell = True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

当我运行这段代码时,什么也没有发生。我试过执行

java -jar file.jar

直接进入命令提示符,.jar应用打开并正常运行。

我也试过用 Popen 替换它

subprocess.Popen(['java', '-jar', 'file.jar'], shell = True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

也尝试过其他方法

subprocess.call(['cmd','\C type java -jar file.jar'], shell = True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

import os
os.system('java -jar file.jar')

所有这些都不做任何事情。

我尝试运行另一个命令行

import subprocess
subprocess.call(['ipconfig'])

这工作得很好。还有,

subprocess.call(['java -jar file.jar'])

当我在我的 Mac 上运行它时工作得很好。

知道问题可能是什么吗?我真的很感激任何和所有的建议。

【问题讨论】:

    标签: python windows-7 subprocess executable-jar


    【解决方案1】:

    你有两个选择:

    • 指定包含 main() 方法的类名

    java -jar JarFile.jar com.something.TheClass

    • 将 MANIFEST.MF 文件添加到具有包含 main() 方法的类的名称的 jar 中。
    Manifest-version: 1.0
    Main-Class: com.something.TheClass
    

    【讨论】:

    • 感谢您的回复!我很感激你的建议。我尝试了第一个选项并指定了主类。它在直接放入命令提示符时起作用,但在 python 脚本中不起作用(像以前一样)。对于清单文件。这两行文件是放在 .jar 文件的目录还是其中一个子文件夹中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2021-04-15
    • 1970-01-01
    • 2012-01-20
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多