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 回答