2016-07-16 2 views
0

В Ubuntu я экспортировал ниже переменную среды в ~/.bashrc:Linux переменная/Баш среда является пустым при чтении из Java

export MY_VAR="MY_VAR_VALUE" 

Когда я вновь открыть терминал, я могу сделать:

~ $ echo $MY_VAR 
MY_VAR_VALUE 
~ $ 

Но когда я делаю это в Java/Eclipse (который я перезапущен после экспорта тест окр вар.):

String myVar = System.getenv("MY_VAR"); 
System.out.println(myVar); 

Я просто получаю null. Заставляет ли eclipse не видеть переменные, установленные в ~/.bashrc?

+3

Зависит от того, как вы начинаете Eclipse. Выполняется ли она из сценария или консоли, на которой установлена ​​ваша среда Bash? Попробуйте запустить Java-программу непосредственно из приглашения Bash. – Andreas

+1

он не видит переменные, установленные в ~/.bashrc. Вы должны пройти оболочкой или создать скрипт, который экспортирует переменные и запускает eclipse – davidxxx

ответ

2

В Linux (в отличие от Windows) вам требуется прямое дочернее реляционное взаимодействие между исполняемым Java, запущенным Eclipse, запущенным оболочкой, в которой вы экспортировали переменную.

Итак, вы должны запустить Eclipse изнутри этой оболочки. Это не будет работать, если вы дважды щелкните на исполняемом файле на рабочем столе или в меню.

Но я бы указал необходимые переменные среды в конфигурации запуска и не полагался на такую ​​настройку.