How do I set environment variables from Java? I see that I can do this for subprocesses using
ProcessBuilder. I have several subprocesses to start, though, so I'd rather modify the current process's environment and let the subprocesses inherit it.
System.getenv(String) for getting a single environment variable. I can also get a
Map of the complete set of environment variables with
System.getenv(). But, calling
put() on that
Map throws an
UnsupportedOperationException — apparently they mean for the environment to be read only. And, there's no
So, is there any way to set environment variables in the currently running process? If so, how? If not, what's the rationale? (Is it because this is Java and therefore I shouldn't be doing evil nonportable obsolete things like touching my environment?) And if not, any good suggestions for managing the environment variable changes that I'm going to need to be feeding to several subprocesses?