将 Java 应用程序作为 *nix 守护程序或 Windows 服务运行的最佳方法?

2022-09-02 10:24:30

我正在寻找将Java应用程序作为* NIX守护程序或Windows服务运行的最佳方法。我研究了Java Service WrapperApache Commons项目'jsvc'Apache Commons项目'procrun'。到目前为止,Java Service Wrapper看起来是最好的选择...但是,我想知道是否有任何其他“开源友好”的许可产品。


答案 1

我自己在Java Service Wrapper上取得了巨大的成功。我还没有看过其他的,但ServiceWrapper的主要优势是:

  • 出色的x平台支持 - 我已经在Windows和Linux上使用它,并且发现在两者上都很容易
  • 可靠的文档 - 文档清晰明了,切中要害,并提供了很好的示例
  • 深度逐平台支持 - 窗口服务管理系统中有一些独特的功能,服务包装器(不重新启动)完全支持这些功能。在Windows上,您甚至可以在进程列表中看到您的应用程序名称,而不仅仅是“java.exe”。
  • 标准兼容 - 与许多临时 Java 初始化脚本不同,服务包装器的脚本往往符合 LSB 标准。如果您想要从Linux Heartbeat / HA之类的东西进行高可用性管理,这最终可能非常重要。

无论如何,只是我的2美分...:)


答案 2

另一个选择是WinRun4J。这只是窗口,但有一些有用的功能:

  • 32 位和 64 位支持
  • 用于访问事件日志和注册表的 API
  • 可以将服务注册为依赖于其他服务(即服务 A 和服务 B 必须在 serviceC 之前启动)

它也是开源友好的(CPL),所以没有使用限制。

(完全披露:我从事这个项目)。


推荐