如何在Windows的ProcessBuilder java中设置PATH环境变量

我正在尝试在java中为进程生成器设置PATH环境变量,我尝试了以下方法:

ProcessBuilder pb = new ProcessBuilder(command);
Map<String, String> mp = pb.environment();
mp.put("Path", "myPath");
pb.start();

但以下不起作用,流程构建器选择了默认的系统路径。我遇到了这个问题,这个技巧他没有在我目前的项目中帮助我。我该怎么做才能解决这个问题?


答案 1

路径用于新的进程。它不用于查找您的命令。

您可以尝试下一个解决方案。运行cmd.exe(bash等),然后运行命令。

例:

public class Test {

    public static void main(String[] args) throws IOException {
        ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start", "mystuff.exe");
        Map<String, String> envs = pb.environment();
        System.out.println(envs.get("Path"));
        envs.put("Path", "C:\\mystuff");
        pb.redirectErrorStream();
        pb.start();

    }

}

答案 2

推荐