Java не может получить переменную среды (системное свойство)

1

Мне нужно, чтобы мой код мог получить переменную окружения при запуске теста с 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?

  • 0
    Какую именно командную строку Java вы используете? Похоже, вам нужно явно включить $JAVA_OPTIONS в вызов командной строки - процесс Java не будет автоматически читать эту переменную среды.
  • 0
    Я просто делаю правый клик, затем запускаю тест. Как типичный ручной тест JUnit.
Показать ещё 3 комментария
Теги:
intellij-idea

1 ответ

2
Лучший ответ

Вы должны использовать

String val = System.getenv( "PATH" );

для значения переменной среды. Значение свойства не имеет ничего общего с окружающей средой процесса.

String val = System.getProperty( "sdk.root");

для свойств.

Должен быть способ установки аргументов командной строки в диалоговом окне для подготовки исполнения Java-программы в вашей среде IDE. Здесь вы должны определить -Dsdk.root =....

  • 0
    Почему не System.getProperty?
  • 0
    Мне нужно сохранить код Java
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню