Мне нужно, чтобы мой код мог получить переменную окружения при запуске теста с IntelliJ:
private String sdkDir = System.getProperty("sdk.root");
Проблема в том, что это всегда null
, я установил оба в bashrc
а также с bash_profile
но не работает с Ubuntu.
bashrc
и bash_profile
имеют следующее:
export JAVA_HOME=/home/xybrek/zulu1.8.0_25-8.4.0.1-x86lx64
export JAVA_OPTIONS="-Dsdk.root=/home/xybrek/java-sdk-1.9.17"
export PATH=$PATH:/home/xybrek/zulu1.8.0_25-8.4.0.1-x86lx64/bin
export PATH
Что может отсутствовать в моей конфигурации?
Обновить:
Я не могу изменить код Java: System.getProperty("sdk.root");
поскольку это происходит из скомпилированного контейнера Arquillian, который я не могу изменить.
Мне нужен был бы правильный способ получить этот метод System.getProperty
для получения значения.
Куда поместить этот "sdk.root" для IntelliJ, чтобы забрать его? В файле свойств или bash?
Вы должны использовать
String val = System.getenv( "PATH" );
для значения переменной среды. Значение свойства не имеет ничего общего с окружающей средой процесса.
String val = System.getProperty( "sdk.root");
для свойств.
Должен быть способ установки аргументов командной строки в диалоговом окне для подготовки исполнения Java-программы в вашей среде IDE. Здесь вы должны определить -Dsdk.root =....
$JAVA_OPTIONS
в вызов командной строки - процесс Java не будет автоматически читать эту переменную среды.