Я установил переменные среды в моем файле .bash_profile. У меня macOS 10.12.6
Это выглядит так:
#MYENV environemnt
export MY_ENV=/Users/user_name/directory
Я создаю простой Java-код, который пытается прочитать все переменные среды:
public static void main(String[] args) {
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.println("name: " + envName);
}
}
Если я запускаю свой код, он печатает только эти переменные:
run:
name: PATH
name: J2D_PIXMAPS
name: SHELL
name: JAVA_MAIN_CLASS_3122
name: USER
name: TMPDIR
name: JAVA_MAIN_CLASS_2967
name: SSH_AUTH_SOCK
name: XPC_FLAGS
name: LD_LIBRARY_PATH
name: __CF_USER_TEXT_ENCODING
name: Apple_PubSub_Socket_Render
name: LOGNAME
name: LC_CTYPE
name: XPC_SERVICE_NAME
name: PWD
name: SHLVL
name: HOME
name: _
BUILD SUCCESSFUL (total time: 0 seconds)
Если я запустил команду printenv со своего терминала, я смогу увидеть свою переменную среды.
Итак, моя проблема в том, почему мое приложение Java не может видеть все переменные среды? Спасибо!




Ваш код работает для меня, когда я выполняю его из командной строки с помощью
java. Ваш.bash_profileне загружается при запуске приложений; вы выполняете свой код в среде IDE?