Как установить переменные окружения из Java? Я вижу, что я могу сделать это для подпроцессов, используя ProcessBuilder
. У меня есть несколько подпроцессов для запуска, поэтому я бы предпочел изменить текущую среду процессов и позволить подпроцессам наследовать ее.
Есть System.getenv(String)
для получения одной переменной среды. Я также могу получить Map
полного набора переменных среды с помощью System.getenv()
. Но вызов метода put()
для этого Map
вызывает UnsupportedOperationException
- очевидно, они означают, что среда должна быть доступна только для чтения. И нет System.setenv()
.
Итак, есть ли способ установить переменные среды в текущем процессе? Если да, то как? Если нет, в чем причина? (Это потому, что это Java, и поэтому я не должен делать злых непереносимых устаревших вещей, таких как прикосновение к моей среде?) И если нет, то любые полезные предложения по управлению изменениями переменных среды, которые мне нужно будет передать нескольким подпроцессы?