简体   繁体   中英

How to set PATH environment variable in ProcessBuilder java in windows

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?

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();

    }

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM