Mic*_*ter 7 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
Run Code Online (Sandbox Code Playgroud)
但是当我作为 Windows 服务运行时,我无法使用检索 MY_VAR 变量 System.getenv("MY_VAR");
谷歌搜索没有帮助,因为所有页面都显示了如何设置 Java 和 Tomcat 变量,但没有显示如何设置用户变量。
我无法为整台机器设置它,因为我有几个 tomcat 实例,每个实例都需要不同的环境变量。
我更喜欢一种涉及在 tomcat 配置中设置变量的方法,而不是使用 Windows 配置。
我的替代方法是在 tomcat 中使用 context.xml 文件并使用检索上下文设置的逻辑检索值。
我最初在超级用户上发布了这个,但有人建议 stackoverflow 是解决这个问题的更好地方。如果我在这里得到好的答案,我会将其从超级用户中删除。
遇到了同样的问题,我刚刚设法解决了它。
从管理员命令提示符执行以下命令:
tomcat8 //US//YourServiceName ++Environment varname=value
Run Code Online (Sandbox Code Playgroud)
您可以通过用分号 (;) 或哈希 (#) 分隔来设置多个变量。文档很清楚,但很难相信发生了什么,因为任何地方都没有视觉指示,这意味着如果你运行:
tomcat8w //ES//YourServiceName
Run Code Online (Sandbox Code Playgroud)
要获取 GUI 配置工具,您将不会在任何地方看到环境变量,但是如果您运行该服务,它将被选中。这就像隐藏的魔法。不知道为什么他们没有将它包含在配置面板的某个地方。
| 归档时间: |
|
| 查看次数: |
9592 次 |
| 最近记录: |