MacOS и переменные среды

Я установил переменные среды в моем файле .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?

teppic 14.03.2018 03:56
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
276
0

Другие вопросы по теме