我的计算机上有一个java程序,它有一个命令行api。如果在命令提示符中导航到相应的文件夹,我可以输入命令
java -cp p2.jar propokertools.cli.RunPQL
从命令提示符进行各种扑克计算。我希望能够通过Python与这个程序进行交互。
我试过了:
p = subprocess.check_output(['java', '-cp', 'p2.jar propokertools.cli.RunPQL'], cwd='C:\\Program Files\\PPTOddsOracle\\ui_jar')
但得到此错误:
文件" C:\ Python34 \ lib \ subprocess.py",第620行,在check_output中 引发CalledProcessError(retcode,process.args,output = output) subprocess.CalledProcessError:Command' [' java',' -cp p2.jar propokertools.cli.RunPQL']'返回非零退出状态1
我决定不那么雄心勃勃,只是想弄清楚如何让Python返回我的java版本,但是
p = subprocess.check_output(['java', '-version'])
和
p = subprocess.Popen(["java", "-version"], stdout=subprocess.PIPE)
p.stdout.read()
都返回空字节字符串,所以我认为我做错了。任何帮助将不胜感激。
答案 0 :(得分:1)
我明白了。我错过了' p2.jar propokertools.cli.RunPQL'需要分成不同的论点。
p = subprocess.check_output(['java', '-cp', 'p2.jar', 'propokertools.cli.RunPQL'], cwd='C:\\Program Files\\PPTOddsOracle\\ui_jar')