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.call(['java', '-jar', 'file.jar', '-option', 'valueForThisOption', '-option', 'valueForThisOption', 'pathToFile'])

-optionとvalueを一重引用符で囲むと、このエラーが発生します。最後にshell=Trueを指定した場合にのみ、-optionとvalueを1つの引用符で囲むことができることをどこかで読みました。(未テスト)

于 2012-10-18T12:11:29.077 に答える