Używam tomcat 8 w systemie Windows 2012.
Mam aplikację internetową, która wymaga uruchomienia zmiennej środowiskowej użytkownika w celu uruchomienia.
Mogę uruchomić tomcat i pomyślnie pobrać zmienną w następujący sposób:
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
Ale kiedy działam jako usługa systemu Windows, nie mogę pobrać MY_VAR
zmiennej za pomocąSystem.getenv("MY_VAR");
Googling nie pomógł, ponieważ wszystkie strony pokazują, jak ustawić zmienne Java i Tomcat, ale nie jak ustawić zmienne użytkownika.
Nie mogę ustawić tego dla całej maszyny, ponieważ mam kilka instancji tomcat i każda z nich potrzebuje innej zmiennej środowiskowej.
Wolałbym metodę polegającą na ustawianiu zmiennej w konfiguracji tomcat zamiast w konfiguracji Windows.
Moją alternatywą jest użycie pliku context.xml w tomcat i pobranie wartości za pomocą logiki, która pobiera ustawienia kontekstu.