2008-08-25 64 views
19

我正在尋找將Java應用程序作爲* NIX守護程序或Windows服務運行的最佳方法。我查看了Java Service WrapperApache Commons project 'jsvc'Apache Commons project 'procrun'。到目前爲止,Java服務包裝看起來是最好的選擇......但是,我想知道是否有任何其他「開源友好」許可產品。將Java應用程序作爲* nix守護程序或Windows服務運行的最佳方法?

+0

對於Windows服務,請參閱此問題:http://stackoverflow.com/questions/68113/how-to-create-a-windows-service-from-java-app/3626452#3626452(將此評論添加爲Google把我帶到這裏,但另一個問題有更多答案)。 – atomicules 2010-09-02 11:05:27

回答

17

我自己在Java Service Wrapper方面取得了巨大的成功。我沒有看過其他人,但ServiceWrapper的主要優勢有:

  • 大X平臺支持 - 我用它在Windows和Linux,並發現它很容易在兩個
  • 固文檔 - 文檔清晰並且重點突出,具有很好的示例
  • 深度平臺支持 - 窗口服務管理系統中有一些獨特的功能,完全由服務包裝(無重新啓動)支持。而在Windows上,您甚至可以在進程列表中看到您的應用程序名稱,而不僅僅是「java.exe」。
  • 符合標準 - 與許多專門的Java初始化腳本不同,服務包裝器的腳本傾向於符合LSB標準。如果您希望從Linux Heartbeat/HA等高可用性管理中獲得高可用性,這可能最終變得非常重要。

總之,只要我的2美分... :)

+1

不能高度推薦這個 – 2009-05-11 08:10:57

1

是否有任何需要應用的特殊屬性(如操作系統指導的資源管理)需要支持?否則,對於Unix,您應該能夠通過編寫適當的init.d腳本並將您的應用程序設置爲自動啓動來守護程序。

3

另一種選擇是WinRun4J。這是僅適用於Windows,但有一些有用的功能:

  • 32位和64位支持
  • API來訪問事件日誌和註冊表
  • 可以註冊服務依賴於其他服務(即serviceA和serviceB必須啓動服務之前)

它也開源友好(CPL)所以沒有限制使用。

(全面披露:我在這個項目上工作)。

相關問題