【问题标题】:How to pass environment variable to Tomcat running as Windows service如何将环境变量传递给作为 Windows 服务运行的 Tomcat
【发布时间】:2015-12-22 15:12:20
【问题描述】:

我在 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

这也无济于事。

大家有什么建议

【问题讨论】:

  • 此链接建议使用 tomcat tomcat5w.exe(以及更新的 tomcat7w.exe 等)。有一种方法可以传递 java 参数,在这个问题中似乎没问题。 (回答说错了,这个选项卡在寡妇服务屏幕上不可见) Windows 服务通常很难传递命令行参数。第一个选项卡上的现有字段仅适用于手动启动
  • 不,这不是参数,也不是系统属性。这是一个环境变量。

标签: windows tomcat7


【解决方案1】:

我有一个 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

现在已经开始工作了。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      你快到了。用你的 tomcat7 命令中的空格替换等号,这应该可以工作。

      我刚刚在另一个问题上写了这个:Setting User Environment Variables for tomcat on Windows

      【讨论】:

        猜你喜欢
        • 2018-12-02
        • 2022-11-03
        • 2018-01-04
        • 1970-01-01
        • 2021-11-06
        • 2013-06-05
        • 2011-09-07
        • 1970-01-01
        • 2013-12-29
        相关资源
        最近更新 更多