System.getProperty возвращает значение NULL для определенного свойства - PullRequest
11 голосов
/ 04 января 2011

У меня есть свойство TOOLS_DIR, которое я экспортировал в bash

У меня есть следующая строка в моем Java-файле:

String toolsDir = System.getProperty("TOOLS_DIR");

Почему это возвращает ноль?Это проблема совместимости с Linux или что-то?

Ответы [ 3 ]

21 голосов
/ 04 января 2011

Переменные и свойства среды - это не одно и то же.Если вы хотите передать переменную окружения в качестве свойства, вы должны добавить следующее к вашему вызову Java:

-DTOOLS_DIR=$TOOLS_DIR

В качестве альтернативы, вы можете использовать System.getEnv()

6 голосов
/ 04 января 2011

Свойства системы Java не имеют ничего общего с переменными среды оболочки.

Вы можете назначить системное свойство Java при вызове виртуальной машины, например:

java -DTOOLS_DIR=/somewhere org.example.MyClass
3 голосов
/ 04 января 2011

Попробуйте вместо этого:

String toolsDir = System.getenv("TOOLS_DIR");

Метод getProperty (...) возвращает свойства Java vm (например, user.dir, java.version).Метод getenv (...) предназначен для переменных среды.

...