How do I set environment variables from Java?

(Is it because this is Java and therefore I shouldn’t be doing evil nonportable obsolete things like touching my environment?)

I think you’ve hit the nail on the head.

A possible way to ease the burden would be to factor out a method

void setUpEnvironment(ProcessBuilder builder) {
    Map<String, String> env = builder.environment();
    // blah blah
}

and pass any ProcessBuilders through it before starting them.

Also, you probably already know this, but you can start more than one process with the same ProcessBuilder. So if your subprocesses are the same, you don’t need to do this setup over and over.

Leave a Comment