使用 Popen 执行 Java JAR:无法找到或加载主 Class JAR
Executing Java JAR With Popen: Couldn't Find or Load Main Class JAR
我的 Java JAR 在 linux 命令行中执行得很好,我想通过 python 脚本执行它。
尝试 Popen
时出现以下错误:
Error: Could not find or load main class jar
有什么想法吗?
到目前为止我尝试过的:
- JAR 文件的命令行执行。已检查。
Popen
与简单的 java
和 -version
。检查。
- 更新
cwd
。已检查。
工作 Java 通话:
>>> javaCall = subprocess.Popen(['java', '-version'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
失败的命令:
>>> javaCall = subprocess.Popen(['java', 'jar' ,
'abs/path/to/jar/abc.jar',
'arg 1', 'arg 2', 'arg 3'], cwd =
'/abs/path/where/jar and python files live', stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> output, err = javaCall.communicate()
>>> print err
Error: Could not find or load main class jar
我缺少任何指示吗?
jar 前面少了一个 -
javaCall = subprocess.Popen(['java', 'jar' ,
'abs/path/to/jar/abc.jar',
'arg 1', 'arg 2', 'arg 3'], cwd =
'/abs/path/where/jar and python files live', stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> output, err = javaCall.communicate()
>>> print err
Error: Could not find or load main class jar
更改为:javaCall = subprocess.Popen(['java', '-jar' , ~~~
我的 Java JAR 在 linux 命令行中执行得很好,我想通过 python 脚本执行它。
尝试 Popen
时出现以下错误:
Error: Could not find or load main class jar
有什么想法吗?
到目前为止我尝试过的:
- JAR 文件的命令行执行。已检查。
Popen
与简单的java
和-version
。检查。- 更新
cwd
。已检查。
工作 Java 通话:
>>> javaCall = subprocess.Popen(['java', '-version'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
失败的命令:
>>> javaCall = subprocess.Popen(['java', 'jar' ,
'abs/path/to/jar/abc.jar',
'arg 1', 'arg 2', 'arg 3'], cwd =
'/abs/path/where/jar and python files live', stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> output, err = javaCall.communicate()
>>> print err
Error: Could not find or load main class jar
我缺少任何指示吗?
jar 前面少了一个 -
javaCall = subprocess.Popen(['java', 'jar' ,
'abs/path/to/jar/abc.jar',
'arg 1', 'arg 2', 'arg 3'], cwd =
'/abs/path/where/jar and python files live', stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> output, err = javaCall.communicate()
>>> print err
Error: Could not find or load main class jar
更改为:javaCall = subprocess.Popen(['java', '-jar' , ~~~