如何将环境变量传递给作为Windows服务运行的Tomcat

4
我在Tomcat中安装了一个应用程序,由包装器调用,该包装器设置了一个环境变量。
set FOO=c:\foo

并调用了 startup.bat,我有一个要求是将 Tomcat 运行为 Windows 服务。
到目前为止,我尝试设置系统环境变量,但没有帮助。我尝试按照Windows服务的 HOWTO 在注册表中附加 ++Environment,以便
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tomcat7\Parameters\ImagePath 

看起来像这样。
C:\Apache\Tomcat-7.0.64\bin\Tomcat7.exe //RS//Tomcat7 ++Environment=FOO=c:\foo

这也没有帮助。
请问还有其他建议吗?

https://dev59.com/c2025IYBdhLWcg3wFxua#6225751 - leeor
这个链接建议使用Tomcat tomcat5w.exe(以及更新的tomcat7w.exe等)。有一种方法可以传递Java参数,似乎在这个问题中是可以的。(答案说错了,这个选项卡在Windows服务屏幕上不可见)通常很难通过命令行参数来控制Windows服务。第一个选项卡上的现有字段只能通过手动启动来工作。 - Jacek Cz
不,这不是一个参数,也不是一个系统属性。它是一个环境变量。 - PassoGiau
3个回答

4

2

我必须更改service.bat文件的--JvmOptions,然后删除服务并重新安装。

--JvmOptions "-Dspring.profiles.active=pp;-Dcatalina.home=%CATALINA_HOME%;...."

0

我有一个InstallService.bat文件。在这个文件中,我首先创建服务而没有指定环境变量,然后再使用指定的环境变量更新服务。这就是bat文件的样子。

tomcat8 //IS//CompassTomcat8_8080 --DisplayName="Compass Apache Tomcat 8:8080" --Install=%CATALINA_HOME%\bin\tomcat8.exe --Startup=auto
tomcat8 //US//CompassTomcat8_8080 --DisplayName="Compass Apache Tomcat 8:8080" --Install=%CATALINA_HOME%\bin\tomcat8.exe --Startup=auto --Environment=Key1=Value1;Key2=Value2

现在它已经开始工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接