Почему это возвращается ноль? это проблема совместимости с 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 (...) предназначен для переменных среды.