System.getProperty возвращает null для определенного свойства

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

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

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

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

Ответ 1

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

-DTOOLS_DIR=$TOOLS_DIR

Кроме того, вы можете использовать System.getEnv()

Ответ 2

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

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

java -DTOOLS_DIR=/somewhere org.example.MyClass

Ответ 3

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

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

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