以编程方式将 Tomcat 的 Java 选项设置为 Windows 服务的方法
Posted
技术标签:
【中文标题】以编程方式将 Tomcat 的 Java 选项设置为 Windows 服务的方法【英文标题】:Way to programmatically set Java options for Tomcat as a Windows Service 【发布时间】:2010-01-15 20:20:32 【问题描述】:我正在寻找一种以编程方式为 Tomcat 6.0 设置 Java 选项的方法作为 Windows 服务运行。使用startup.bat
和shutdown.bat
时,您可以在setenv.bat
中设置这些变量或catalina.bat
文件。但是,对于作为 Windows 服务运行的 Tomcat,必须在配置实用程序的 Java 选项部分手动设置这些选项。
有没有办法以编程方式设置这些选项?
背景:我正在尝试编写一个安装程序,将我的应用程序部署到现有的 Tomcat 6.0 服务器。我可以以编程方式完成其他所有操作,但我仍然需要让用户在这些设置中手动添加一些 Java 选项。这不太理想,尤其是因为这些选项区分大小写和空格。
【问题讨论】:
服务配置最终进入 Windows 注册表。我现在不在 Windows 上,所以我不能给你一个正确的答案,但应该可以以一种或另一种方式操作注册表项。 【参考方案1】:用于将 Tomcat 作为 Windows 服务运行的 Tomcat6 二进制文件has a bunch of command-line parameters 可能会对您有所帮助。我预见的唯一问题是很难(不可能?)检索当前设置以便您可以修改它们...
【讨论】:
谢谢,这正在工作:tomcat6 //US//Tomcat6 --JvmOptions="-DSetting1=Value1;-DSetting2=Value2"
但是,正如你所说,这是一个问题,因为它覆盖了所有现有的 java 选项,我不想覆盖其他应用程序的设置可能在此服务器上
我在开车回家时正在考虑这个问题;我敢打赌,您可以在 Windows 注册表中找到原始设置,然后对其进行修改(甚至可以直接在注册表中,但也可以使用 tomcat6 //US//
命令行方法)。 SO有一个关于在Java中读取注册表的线程:***.com/questions/62289/…;我认为 Tomcat 服务信息应该位于 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\。完全笨拙,但我不知道是否有其他方法。
覆盖问题可以通过使用'tomcat6 //US//Tomcat6 ++JvmOptions="MyOption"'而不是'tomcat6 //US//Tomcat6 --JvmOptions="MyOption"来解决'以上是关于以编程方式将 Tomcat 的 Java 选项设置为 Windows 服务的方法的主要内容,如果未能解决你的问题,请参考以下文章
在android中以编程方式覆盖文本到语音设置中的“始终使用我的设置”选项