相关疑难解决方法(0)

为ProcessBuilder设置环境

我从Java(1.6)设置Linux环境有一个奇怪的问题; 特别是"PATH"变量.

简而言之,我有一个用于运行本机进程的管道,它使用java.lang.ProcessBuilder.用户可以选择通过HashMap命名设置环境变量environment:

ProcessBuilder pb = new ProcessBuilder(args);
Map<String, String> env = pb.environment();
if (environment != null)
   env.putAll(environment);
Process process = pb.start();
Run Code Online (Sandbox Code Playgroud)

env变量被设置正确,如果我把它转储到控制台,与PATH变量正确的值.但是,运行该进程会导致抛出Exception:

java.io.IOException: error=2, No such file or directory

在终端shell中使用相同的环境变量运行相同的进程.为了测试这个,我在终端后设置环境后运行Eclipse.在这种情况下,该ProcessBuilder过程正确运行.

所以必须发生的是,ProcessBuilder我没有使用我为它设置的环境,而是使用当前的系统环境.

我在网上找不到任何满意的答案.也许这是特定于操作系统的问题?还是别的我错过了什么?

java environment-variables processbuilder

10
推荐指数
3
解决办法
3万
查看次数