在Windows上为tomcat设置用户环境变量

时间:2016-11-07 02:13:12

标签: tomcat8 windows2012

我在Windows 2012上运行tomcat 8。

我有一个webapp,需要设置一个用户环境变量才能运行。

我可以启动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服务运行时,我无法使用System.getenv("MY_VAR");检索MY_VAR变量

谷歌搜索没有帮助,因为所有页面都显示如何设置Java和Tomcat变量,而不是如何设置用户变量。

我无法为整个机器设置它,因为我有几个tomcat实例,每个实例需要一个不同的环境变量。

我更喜欢一种涉及在tomcat配置中设置变量而不是使用windows配置的方法。

我的另一种方法是在tomcat中使用context.xml文件,并使用检索上下文设置的逻辑检索值。

我最初是在超级用户上发布的,但有人建议stackoverflow是这个问题的更好地方。如果我在这里得到了很好的答案,我将从超级用户那里删除它。

1 个答案:

答案 0 :(得分:2)

遇到同样的问题,我只是设法解决了。

在管理员命令提示符下,执行以下命令:

tomcat8 //US//YourServiceName ++Environment varname=value

您可以通过用分号(;)或散列(#)分隔多个变量来设置它们。文档非常清楚,但很难相信任何事情发生,因为在任何地方都没有视觉指示,这意味着如果你运行:

tomcat8w //ES//YourServiceName 

要获取GUI配置工具,您将无法在任何地方看到环境变量,但如果您运行该服务,它将会获取它。它就像隐藏的魔法。不知道为什么他们没有把它包含在配置面板的某个地方。