import java.io.*;
class RunTest {
public static void main(String a[]) {
try {
String prg = "import sys\nprint int(sys.argv[1])+int(sys.argv[2])\n";
BufferedWriter out = new BufferedWriter(new FileWriter("test1.py"));
out.write(prg);
int number1 = 1;
int number2 = 2;
ProcessBuilder pb = new ProcessBuilder("python","test1.py",""+number1,""+number2);
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
int ret = new Integer(in.readLine()).intValue();
System.out.println("value is : "+ret);
} catch(Exception e) {
e.printStackTrace();
}
}
}
当我运行此代码(我正在使用Eclipse)时,我得到了堆栈跟踪:
java.io.IOException:无法运行程序“python”:CreateProcess error = 2,系统找不到指定的文件 在java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 在RunTest.main(RunTest.java:11) 引起:java.io.IOException:CreateProcess error = 2,系统找不到指定的文件 at java.lang.ProcessImpl.create(Native Method) 在java.lang.ProcessImpl。(ProcessImpl.java:386) 在java.lang.ProcessImpl.start(ProcessImpl.java:137) 在java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ......还有1个
任何人都知道为什么以及我能做什么?
谢谢!
答案 0 :(得分:0)
您必须flush()
,并且在写信close()
之后,您应该flush()
(File
}。
out.write(prg);
out.close(); // <-- add this.
此外,您需要将python
添加到路径中。
答案 1 :(得分:0)
对不起,这可能真的没用,但不知怎的,它刚刚开始工作。不知道为什么或如何,因为我没有改变任何东西。 Eclipse基本上只是随机重启,现在它可以工作了!抱歉,我无法发布有助于他人的解决方案,但无论如何,谢谢你的帮助@MadProgrammer和@Elliott!