当前位置: 首页 > 知识库问答 >
问题:

Java ProcessBuilder找不到指定的文件

商焕
2023-03-14
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木卫一。IOException:无法运行程序“python”:CreateProcess error=2,系统找不到java指定的文件。lang.ProcessBuilder。在运行测试时启动(ProcessBuilder.java:1048)。main(RunTest.java:11)由:java引起。木卫一。IOException:CreateProcess error=2,系统找不到java上指定的文件。lang.ProcessImpl。在java上创建(本机方法)。lang.ProcessImpl。(ProcessImpl.java:386)在java。lang.ProcessImpl。在java上启动(ProcessImpl.java:137)。lang.ProcessBuilder。开始(ProcessBuilder.java:1029)。。。还有一个

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

谢谢!

共有2个答案

方和顺
2023-03-14

抱歉,这可能真的没有帮助,但不知何故,它刚刚开始工作。不知道为什么或如何,因为我什么也没改变。Eclipse基本上只是随机重启自己,现在它工作了!很抱歉,我不能发布一个可以帮助他人的解决方案,但是无论如何感谢你的帮助@疯狂程序员和@埃利奥特!

孟佑运
2023-03-14

你必须flush()并且你应该在写入File后关闭()(这也将flush())。

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

此外,还需要将python添加到PATH中。

 类似资料:
  • 问题内容: 我的代码简单明了,如下所示: 我得到的错误响应是: 任何指导都是太棒了。 将tesseract添加到我的path变量中有助于: 但是,现在尝试运行pytesseract部分时,代码崩溃了。 问题答案: 只需遇到相同的错误,然后决定回答这个问题-可能会帮助某人节省时间… 首先,确保已安装/复制了Tesseract-OCR可执行文件。 Windows在您的环境变量中指定的目录中找不到可执行

  • 问题内容: 我有一个名为 的文件。 它与我的文件位于同一目录中。 但是,当我尝试通过以下代码访问它时,找不到此文件,发生错误: 这是我的代码: 问题答案: 直接将word.txt作为项目根文件夹的子级和src的对等方放置 免责声明:我想解释一下为什么这种方法适用于这种特殊情况,以及为什么它可能不适用于其他情况。 工作原理: 使用或任何其他变体时,你正在文件系统上相对于“工作目录”查找文件。工作目录

  • 问题内容: 我收到以下错误 但我可以肯定地说,我已经在src,bin和根目录下创建了一个in.txt文件。我还尝试在主要参数中指定完整目录,但仍然无法正常工作。为什么Eclipse不选择它? 问题答案: 我获取了您的代码,并使用以下命令行参数执行了该代码: 它完全没有问题。检查您的命令行。

  • 问题内容: 我正在制作一个打开并读取文件的程序。这是我的代码: 但是当我跑步时,出现以下错误: 我和位于同一目录中的以下位置: 我想知道我在做什么错? 问题答案: 我已经复制了您的代码,并且运行正常。 我怀疑您在hello.txt的实际文件名中仅存在一些问题,或者您在错误的目录中运行。考虑通过@ Eng.Fouad建议的方法进行验证

  • 我有一个名为""的文件。 它与我的< code>java文件在同一个目录中。 但是,当我尝试在以下代码中访问它时,会发生此文件未找到错误: 这是我的代码:

  • 我是编程新手。我最近尝试下载开源软件的源代码并设置环境。但是,当我第一次尝试运行构建时,我看到以下问题: 执行失败:Java . io . io异常:无法运行程序“unzip”(在目录中)....\"): CreateProcess error=2,系统找不到java.lang.ProcessBuilder.start中指定的文件 有什么解决这个问题的技巧吗? 据我所知,它无法成为文件: 在哪里查