2014-11-27 5 views
0

я могу получить переменную окружения, как этотМожно ли изменить переменные среды JAVA?

final String value = System.getenv("PE_CONF_PWD"); 

Но как я могу изменить переменные окружения ??

+0

какая платформа вы используете? – rick112358

+1

Измените их для своего процесса (не делайте «значение» окончательным)? Или запустить новый процесс с измененной средой? –

+0

Я хочу переписать/написать фактические env vars моих окон. – Junaid

ответ

1

Класс Java System не позволяет вам устанавливать переменные среды для вас. Операционная система напрямую. Вы можете получить их с помощью getenv(), но нет эквивалентного метода setenv(). Когда вы запускаете JVM, он копирует среду вашего os в свою собственную карту строк. Фактический контейнер, который он использует, - это немодифицируемая карта, вероятно, более безопасная. Итак, в запущенном Java-приложении у вас есть 2 среды: копия JVM, которую вы можете прочитать через System.getenv() и базовую среду, которая живет в библиотеке C.
Вы должны иметь возможность изменить копию JVM с помощью Reflection.

Смежные вопросы