Java 应用程序没有使用正确的 PATH 环境变量

Java application does not use the right PATH environment variable

我一直在努力寻找我的 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)要长得多并且包含所需可执行文件的路径。

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

感谢任何帮助!

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

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