【问题标题】:Java application does not use the right PATH environment variableJava 应用程序未使用正确的 PATH 环境变量
【发布时间】:2016-06-21 13:07:18
【问题描述】:

我一直在努力寻找我的 Java 应用程序不使用默认 PATH 环境变量的原因。我需要它来使用 ProcessBuilder 启动另一个程序。现在我得到“Cannot run program "..." error=2, No such file or directory”,虽然我可以从终端运行这个程序。我正在使用 JDK 1.8、Netbeans 8.1、OS X。

这是System.out.println(System.getenv("PATH")); 的输出: /usr/bin:/bin:/usr/sbin:/sbin

终端中 PATH 的实际值(使用echo $PATH)要长得多,并且包含所需可执行文件的路径。

我发现了一些关于同一主题的问题,但没有一个可以帮助我解决这个问题。

任何帮助表示赞赏!

【问题讨论】:

  • 你是如何运行你的程序的?
  • 仍处于开发阶段,所以我正在使用 Netbeans - 运行项目。我应该在没有 IDE 的情况下启动它吗?
  • 是的。可能是 Netbeans 设置了 PATH 变量。
  • 该死!你说得对。它现在使用正确的 PATH 变量 - 我的可执行文件已启动。非常感谢你。关于如何在 Netbeans 中设置环境变量的任何想法?找不到这方面的太多信息!

标签: java path environment-variables environment processbuilder


【解决方案1】:

PATH 由您正在运行的任何 shell 创建,但 ProcessBuilder 不在 shell 内运行,因此没有要附加的 PATH 来解析您的程序名称。您可以为 ProcessBuilder 提供一个环境,但不要相信它会让您在 PATH 中找到您的程序。在我的一个项目中,我必须提供一个完全合格的路径。]

[注意:里程可能会有所不同,我似乎记得 Windows 和 *nix 之间以及不同 *xix 之间的结果有些不同。]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 2022-10-15
    • 1970-01-01
    相关资源
    最近更新 更多