У меня есть свойство TOOLS_DIR, которое я экспортировал в bash
TOOLS_DIR
У меня есть следующая строка в моем Java-файле:
String toolsDir = System.getProperty("TOOLS_DIR");
Почему это возвращает ноль?Это проблема совместимости с Linux или что-то?
Переменные и свойства среды - это не одно и то же.Если вы хотите передать переменную окружения в качестве свойства, вы должны добавить следующее к вашему вызову Java:
-DTOOLS_DIR=$TOOLS_DIR
В качестве альтернативы, вы можете использовать System.getEnv()
System.getEnv()
Свойства системы Java не имеют ничего общего с переменными среды оболочки.
Вы можете назначить системное свойство Java при вызове виртуальной машины, например:
java -DTOOLS_DIR=/somewhere org.example.MyClass
Попробуйте вместо этого:
String toolsDir = System.getenv("TOOLS_DIR");
Метод getProperty (...) возвращает свойства Java vm (например, user.dir, java.version).Метод getenv (...) предназначен для переменных среды.