Ответ 1
Ответ на этот вопрос является более общим, чем просто System.getenv()
в Java.
Переменные окружения идут вниз по дереву процессов и только при запуске процесса. Eclipse - это дочерний процесс вашей оболочки, следовательно, он унаследовал все переменные среды, которые были определены в вашей оболочке при запуске Eclipse.
Вы, вероятно, определили переменную окружения в своей оболочке после того, как запустили Eclipse. Следовательно, Eclipse и дочерние процессы Java, которые он создал, никогда не будут "знать" о вашей новой переменной среды.
Благодаря такому поведению, на самом деле решение здесь состоит в том, чтобы выйти из Eclipse и снова запустить его из вашей оболочки, в которой переменная среды уже определена. Другой вариант - перейти к конфигурации запуска проекта и определить там переменную среды.
PS
-
Очевидно, что если вы перезагрузите компьютер, переменные среды, которые вы определили в вашей оболочке, не будут сохранены, просто потому что процесс оболочки, для которого вы определили переменные, исчезнет.
-
Если вы используете bash, то, добавив команду установки переменных среды в файл
~/.bashrc
, который выполняется при каждом запуске процесса bash, вы можете смоделировать поведение постоянных переменных среды. -
Существуют дополнительные способы определения постоянных переменных среды. Вы можете посмотреть здесь для получения дополнительной информации.