0

我正在尝试从终端调用一个python脚本,该终端本身调用一个.jar. 请注意,这个 java 程序接受一个参数(一个字符串)并.txt用这个字符串的内容写入一个文件。

我的尝试是去(在test.py):

#!/usr/bin/python

import sys
import subprocess

subprocess.call(['java','-jar',sys.argv[0],sys.argv[1]])

然后在终端类型中:

python test.py test.jar Hello

但是,我得到了错误Invalid or corrupt jarfile test.jar。有趣的是以下将起作用:

#!/usr/bin/python

import sys
import subprocess

subprocess.call(['java','-jar','test.jar',sys.argv[0]])

其次是:

python test.py Hello
4

1 回答 1

3

sys.argv[0]实际上是您的 Python 文件的名称,因为它是您在python. 因此,在您的通话中,您希望使用sys.argv[1]and sys.argv[2]

我的test.py

import sys
print(sys.argv[0])

运行test.py

marius@devils-creek ~   python test.py
# Output 
test.py
于 2013-09-25T07:33:19.930 回答