以编程方式将 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.batshutdown.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 服务的方法的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中以编程方式将用户带到后台刷新设置

在android中以编程方式覆盖文本到语音设置中的“始终使用我的设置”选项

iOS:以编程方式将通知设置从“从不请求”更改为“拒绝”

以编程方式将标签的 maxPreferredLayoutWidth 设置为自动?

如何以编程方式更改 Access 中的选项?

iPhone TabBarController - 以编程方式设置选定的选项卡