0

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

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

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

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

我得到了 --arg1 的 IllegalArugmentException。

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

4

2 回答 2

1

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

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

干杯!

于 2014-10-02T10:34:09.603 回答
0

好的,我想通了。在 python 中使用 subprocess 例程时,您需要单独引用选项和并发值

例如:

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

将 -option 和 value 放在一个引号中会产生此错误。我在某处读到,如果您将 shell=True 放在最后,您只能将 -option 和 value 放在一个引号中。(未经测试)

于 2012-10-18T12:11:29.077 回答