我正在尝试为java中的流程构建器设置PATH环境变量,我尝试了以下方法:
ProcessBuilder pb = new ProcessBuilder(command);
Map<String, String> mp = pb.environment();
mp.put("Path", "myPath");
pb.start();
但是以下不起作用,进程构建器选择了默认的系统路径。我遇到了这个question这个技巧,他在我目前的项目中没有帮助我。我该怎么办才能解决这个问题?
答案 0 :(得分:11)
路径用于新流程。它不用于找到你的命令。
您可以尝试下一个解决方案。运行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();
}
}