我必须从Python执行一个java文件(传递一个参数),执行之后,将结果返回给调用它的脚本。我编写了一个小java测试程序,它接受一个参数并将一些内容输出到stdout。这是java程序import java.util.*;
class TestX
{
public static void main(String args[])
{
String someString = "Your input";
System.out.println(someString + " " + args[0]);
int resultOfSomething = 45;
String someOutput = "Program"s output is " + resultOfSomething;
System.out.println(someOutput);
}
}
下面是调用java程序的Python脚本
^{pr2}$
我应该说我不熟悉java。我用javac命令编译了这个小java程序测试x.java. 创建了一个类文件。当我使用java TestX SomeTestString从命令行运行java程序时,这个小java程序按预期工作,并向控制台输出一些文本。在
现在的问题是:当我使用上面的代码从Python运行相同的java程序时,出现了一个错误This was "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at TestX.main(TestX.java:7)
"
当我注释掉Python程序中的print ("This was "" + stdout + """)行时,Python程序运行并似乎在执行java程序,但是控制台没有返回任何内容。我在这里遗漏了一些非常简单的东西,或者只是我犯了一个愚蠢的错误。有什么建议吗?谢谢。在
我尝试了几种不同的方法来输出结果,比如使用printf,甚至使用这个类StdOut。他们的行为似乎都一样。在
如果我简单地解释一下,就是这个;
我的Python脚本应该用一个参数调用java程序。
java程序接受输入,执行某些函数并返回一个结果,我应该能够从调用它的Python程序中读取这个结果。在