4

私はPythonプログラムからJavaプログラムを実行しようとしています:

subprocess.Popen(["java -mx256m -jar /sphinx4-1.0beta5/bin/HelloWorld.jar"], shell=True)

しかし、このエラーで失敗します:

Error: Unable to access jarfile /sphinx4-1.0beta5/bin/HelloWorld.jar

/home/karen/sphinx4-1.0beta-srcコマンドを実行するには、特定のディレクトリにいる必要があります: 、"java -mx256m -jar /sphinx4-1.0beta5/bin/HelloWorld.jar" しかし、これを行う方法がわかりません。Pythonプログラムで実行する必要があります!

4

2 に答える 2

6

cwdパラメーターを使用する

subprocess.Popen(["java -mx256m -jar ../sphinx4-1.0beta5/bin/HelloWorld.jar"], cwd=r'path', shell=True)

http://docs.python.org/2/library/subprocess.html "cwdがNoneでない場合、子の現在のディレクトリは実行前にcwdに変更されます。実行可能ファイルを検索するときにこのディレクトリは考慮されないことに注意してください。そのため、cwdを基準にしたプログラムのパスを指定することはできません。」

于 2012-11-24T22:54:32.283 に答える
0

問題はおそらくjarファイルへのパスに関連しています。ほとんどの場合、コードはpopen呼び出しで/ home / Karen/sphynx4-1beta-srcを呼び出す必要があります。ただし、ファイルが同じ絶対パスにない限り、これは別のシステムで機能するソリューションではありません。

于 2012-11-24T22:50:12.773 に答える