【发布时间】:2015-12-27 07:03:46
【问题描述】:
我有以下 java 代码:(HelloWorld.class 在 bin 文件夹中):
package Hello;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World" + args[1]);
}
}
我想从一个 python 脚本中调用这个 java 代码并传递一些命令行参数给它。
所以我的python代码是:
cmd = ["java","-classpath","bin/","Hello.HelloWorld","arguement1","arguement2"]
try:
print subprocess.check_output(cmd,stderr=subprocess.STDOUT)
except: subprocess.CalledProcessError:
print ('calling '+ ' '.join(cmd) +' failed\n')
如果我运行这段代码,我会从 java 代码中得到无输出,并且还会得到输出“calling java -classpath bin/Hello.HelloWorldargument1argument2 failed”。
但如果我跑:
java -classpath bin/ Hello.HelloWorld arguement1 arguement2
在终端,java代码将打印字符串。
那么我的python代码哪里错了?
【问题讨论】:
-
您确定调用命令是从您认为的位置开始的吗?尝试为您的 bin 目录使用绝对路径
-
python 脚本在 bin 的父目录下。
标签: java python subprocess command-line-arguments