Ich verwende Tomcat 8 unter Windows 2012.
Ich besitze eine Webanwendung, für deren Ausführung eine Benutzerumgebungsvariable festgelegt werden muss.
Ich kann Tomcat starten und die Variable folgendermaßen erfolgreich abrufen:
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
Wenn ich jedoch als Windows-Dienst ausgeführt werde, kann ich die MY_VAR
Variable nicht mit abrufenSystem.getenv("MY_VAR");
Googeln hat nicht geholfen, da auf allen Seiten gezeigt wird, wie die Java- und Tomcat-Variablen festgelegt werden, nicht jedoch, wie Benutzervariablen festgelegt werden.
Ich kann es nicht für den gesamten Computer festlegen, da ich mehrere Tomcat-Instanzen habe und jede eine andere Umgebungsvariable benötigt.
Ich würde eine Methode bevorzugen, bei der die Variable in der Tomcat-Konfiguration festgelegt wird, und nicht in der Windows-Konfiguration.
Meine Alternative ist, die Datei context.xml in Tomcat zu verwenden und den Wert mit einer Logik abzurufen, die die Kontexteinstellungen abruft.