Я использую Tomcat 8 на Windows 2012.
У меня есть веб-приложение, для работы которого необходимо установить переменную среды пользователя.
Я могу запустить tomcat и получить переменную успешно следующим образом:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_65
set CATALINA_HOME=C:\TOOLS\apache-tomcat-8.0.30
set CATALINA_BASE=C:\Users\ULUser\tomcat\myapp
set MY_VAR=%CATALINA_BASE%
set PATH=%CATALINA_ROOT%\bin;%PATH%
set CATALINA_OPTS="-Djava.security.properties=%CATALINA_BASE%\conf\java.security.properties"
%CATALINA_HOME%\bin\catalina.bat run
Но когда я работаю в качестве службы Windows, я не могу получить переменную MY_VAR
с помощью System.getenv("MY_VAR");
Поиск в Google не помог, потому что все страницы показывают, как устанавливать переменные Java и Tomcat, а не как настраивать пользовательские переменные.
Я не могу установить его для всей машины, потому что у меня есть несколько экземпляров tomcat, и каждому требуется своя переменная окружения.
Я бы предпочел метод, который включает установку переменной в конфигурации Tomcat, а не в конфигурации Windows.
Моя альтернатива - использовать файл context.xml в tomcat и получить значение с помощью логики, которая извлекает настройки контекста.