【问题标题】:Java ProcessBuilder Cannot Find File SpecifiedJava ProcessBuilder 找不到指定的文件
【发布时间】:2015-03-28 01:35:52
【问题描述】:
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, 系统找不到指定的文件 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 在 RunTest.main(RunTest.java:11) 原因:java.io.IOException: CreateProcess error=2, 系统找不到指定的文件 在 java.lang.ProcessImpl.create(本机方法) 在 java.lang.ProcessImpl.(ProcessImpl.java:386) 在 java.lang.ProcessImpl.start(ProcessImpl.java:137) 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ... 1 更多

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

谢谢!

【问题讨论】:

  • 路径中有python 命令吗?你可以从命令行运行它吗?
  • Python 在路径中,我刚刚检查过,它确实可以从命令行运行,但在 Eclipse 中仍然不行...

标签: java python file processbuilder


【解决方案1】:

你必须flush(),你应该close()(也将flush())写信给File

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

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

【讨论】:

  • 很抱歉,当我之前试图让它工作并忘记把它放回去时,我把这条线拿出来了,但它仍然有同样的问题。 Python 已经在我的道路上。另外,我
【解决方案2】:

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

【讨论】:

  • 令人失望....因为我在这里遇到了同样的问题。如果有人有任何提示,让我们在这里!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
相关资源
最近更新 更多