python子进程运行jar给出错误

时间:2012-10-18 11:52:33

标签: java python jar subprocess

在终端中运行此命令可以正常工作:

java -jar file.jar --arg1 --arg2 pathTofile

当我尝试使用以下代码从python代码执行此操作时:

subprocess.call(['java', '-jar', 'file.jar', '--arg1' , '--arg2' , 'pathTofile'])

我得到了--arg1的IllegalArugmentException。

关于为什么会产生问题的任何想法?

2 个答案:

答案 0 :(得分:1)

@Benst - 我遇到了同样的问题,这对我有用:

subprocess.call([' java',' -Dparam1 = paramValue1',' -Dparam2 = paramValue2',' -jar' ,' filename.jar']);

干杯!

答案 1 :(得分:0)

好的,我把它弄清楚了。 在python中使用子进程例程时,需要单独引用选项和并发值

例如:

subprocess.call(['java', '-jar', 'file.jar', '-option', 'valueForThisOption', '-option', 'valueForThisOption', 'pathToFile'])

将-option和value放在一个引号中会产生此错误。 我已经读过某个地方,如果你把shell = True放在最后,你只能将-option和value放在一个引号中。 (另)