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

Java-使用ProcessBuilder目录()时系统找不到指定的文件

苏彭薄
2023-03-14

在使用ProcessBuilder的目录()方法时,我试图在Java中运行一个子进程。但是,每当我使用目录()方法时,程序都会失败,说找不到文件。但是,该文件存在于工作目录中。

Process process = new ProcessBuilder("firefox")
                    .directory(new File("C:\\Program Files\\Mozilla Firefox"))
                    .inheritIO()
                    .start();

输出:

Could not start server due to java.io.IOException: Cannot run program "firefox" (in directory "C:\Program Files\Mozilla Firefox"): CreateProcess error=2, The system cannot find the file specified

当我省略了catudory()方法并创建一个ProcessBuilder,例如:new ProcessBuilder(“C:\\Program Files\\Mozilla Firefox\\firefox”)时,它可以正常工作,firefox.exe成功启动。

这在Windows和Linux上都会发生。

我已经尝试了几个版本的启动命令(比如< code>firefox,< code>firefox.exe,< code >)。/firefox,< code >。/firefox.exe)但没有成功。

共有1个答案

戎兴言
2023-03-14

弄明白了

我没有意识到目录()方法只设置新子进程的工作目录,您仍然需要为您要运行的可执行文件提供完整路径。

在这种情况下,以下代码将起作用:

Process process = new ProcessBuilder("C:\\Program Files\\Mozilla Firefox\\firefox")
                    .directory(new File("C:\\Program Files\\Mozilla Firefox"))
                    .inheritIO()
                    .start();
 类似资料:
  • } 当我运行这段代码时(我使用的是Eclipse),我得到了堆栈跟踪: JAVA木卫一。IOException:无法运行程序“python”:CreateProcess error=2,系统找不到java指定的文件。lang.ProcessBuilder。在运行测试时启动(ProcessBuilder.java:1048)。main(RunTest.java:11)由:java引起。木卫一。IOE

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

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

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

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

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