Java ProcessBuilder 找不到指定的文件

Java ProcessBuilder Cannot Find File Specified

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: Cannot run program "python": CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at RunTest.main(RunTest.java:11) Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.(ProcessImpl.java:386) at java.lang.ProcessImpl.start(ProcessImpl.java:137) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ... 1 more

有人知道为什么以及我能做什么吗?

谢谢!

你必须 flush() 并且你应该 close() (这也将 flush())写到 File.

out.write(prg);
out.close(); // <-- add this.

此外,您需要将 python 添加到您的 PATH。

抱歉,这可能真的没有帮助,但不知何故,它刚刚开始起作用。不知道为什么或如何,因为我没有改变任何东西。 Eclipse 基本上只是随机重启了自己,现在它可以工作了!抱歉,我无法 post 一个可以帮助他人的解决方案,但无论如何感谢您的帮助 @MadProgrammer 和 @Elliott !