问题
I am trying to set the PATH environment variable for the process builder in java, I tried the following:
ProcessBuilder pb = new ProcessBuilder(command);
Map<String, String> mp = pb.environment();
mp.put("Path", "myPath");
pb.start();
But the following did not work, the process builder picked the default system path. I came across this question and this trick his not helping me in my current project. What should I do to get around this?
回答1:
Path is used in a new proccess. It doesn't used to find your command.
You can try the next solution. Run cmd.exe (bash etc.) and then run your command.
Example:
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();
}
}
来源:https://stackoverflow.com/questions/26992165/how-to-set-path-environment-variable-in-processbuilder-java-in-windows