Это верно. Java не обрабатывает подстановку значений переменных среды.
Также Java может не распознавать такие переменные, как $ EXT_DIR . При использовании таких переменных вы можете встретить FileNotFoundException .
Но Java распознает переменные, которые определены с -D в catalina.sh . Я имею в виду, что у вас есть такое определение в catalina.sh
CATALINA_OPTS="-Dweb.external.dir="$EXT_DIR"
В вашем файле свойств используйте $ {web.external.dir} вместо использования * $ EXT_DIR *.
И при доступе к этому свойству в вашем коде вы можете сделать это следующим образом:
String webExtDir = System.getProperty("web.external.dir");
Надеюсь, что это поможет многим людям, поэтому им не придется собирать осколки отовсюду, что действительно занимает много времени для решения проблемы.