java service wrapper封裝Java應用爲Windows服務

最近在公司做一數據採集的java應用(非web項目),考慮到用戶操作的便捷性,沒有采用javac編譯java執行的方式運行,而是利用java service wrapper來將其封裝成windows服務。

另外,該java service wrapper封裝windows服務也適用於在web項目中,用戶使用tomcat或jboss應用服務器啓動後桌面出現黑色框框,這個黑色框框極易被用戶不小心關掉,引起不必要的麻煩。這個時候將應用封裝爲windows服務,可避免以上的問題。

下面將以非web項目爲例介紹封裝windows服務的過程。

一、下載

官方網址:http://wrapper.tanukisoftware.com/doc/english/download.jsp 

大家可以根據自己的需求下載相應的版本,但需要注意的是Standard和Professional兩個版本是需要listence的,也就是需要錢的,否則每次啓動只能使用15分鐘將自動停止服務。

二、簡介

我這裏下載的是windows x86 32-bit Community版本,下載後的文件結構如下:

以下是官方給出的一些Wrapper的優點:

         (1) 使用我們的產品無須在你的程序中添加任何額外的代碼。
         (2) 當你的程序或JVM出現問題時會自動響應事先定製的策略。
         (3) 當出現問題時會及時進行通知。
         (4) 完善的日誌記錄功能可以更好爲您提供支持。
         (5) 在不同的系統上你可以指定一個標準的流程相同流程,也就是說相同的程序可以不必修改即運行於不同系統。
         (6) 可以將你的應用安裝成windows或unix的服務或守護進程。

三、封裝應用

參考地址:http://wrapper.tanukisoftware.com/doc/english/qna-service.html

以我的項目airport爲例說明,在F盤新建airport文件夾作爲應用的根目錄,在airport下面新建如下文件夾(airprot目錄以“%WRAPPER_HOME%”表示):

 

將下載的wrapper中的文件分別複製到到相應目錄下:

 

以上這些copy操作中間兩項不是必須的,根據需要操作,詳細信息參考上面的地址。

下面對%EXAMPLE_HOME%\conf\wrapper.conf配置文件進行修改:

這個截圖是官方給出的參考資料,其中wrapper.app.parameter.1指向程序的入口,即main方法所在類,wrapper.java.classpath.*依次指出程序所需的jar包,最後一個指向應用的class編譯文件目錄../lib/classes,我的具體配置文件可以在這裏下載http://download.csdn.net/detail/ningzuobei/9144371

最終我的airport的結構如下:

 

以上方法是使用WrapperSimpleAPP集成實現的,還可以使用WrapperStartStopAPP集成實現。二者區別與聯繫

第一種方式簡單,而且java service wrapper極度推薦的一種方式。這種方式當wrapper停止的時候jvm中的線程不會清除,當然在wrapper通過system.exit(int)來推出jvm。但是如果應用程序有自己的鉤子函數來做清除的話,當wrapper停止的時候會給應用程序一個機會去清除jvm的線程佔用的資源,之後再退出jvm,如果沒有鉤子的話就相當於windows中的ctrl+c操作。

第二種:特別用於啓動時會開啓一個服務端socket等待連接,而關閉時則通過連接觸發應用的停止,就像TOMCAT這些應用服務器啓動和關閉的時候就適合這種集成方式。這種方式和上面的方式不同之處是在wrapper退出jvm的時候會清除。其具體配置是:具體配置查看wrapper官方網址

四、部署測試

1、程序在console中運行測試:在cmd命令行窗口中進入%EXAMPLE_HOME%目錄下執行如下命令bin\wrapper.exe -c ..\conf\wrapper.conf,如果窗口中出現如下信息則說明運行成功,然後Ctrl+C即可停止運行。

2、以服務形式運行測試:如果以上運行有錯,則進行調試修改,如果無誤,則可以放心安裝服務。

安裝服務:同樣在cmd命令行窗口中進入%EXAMPLE_HOME%目錄下執行命令bin\wrapper.exe -i ..\conf\wrapper.conf,如果窗口中出現如下信息則說明安裝成功。然後在服務中即可查看到該服務如下圖所示:

啓動服務:在cmd命令行窗口中進入%EXAMPLE_HOME%目錄下執行命令bin\wrapper.exe -t ..\conf\wrapper.conf,如果窗口中出現如下信息則說明啓動成功。

停止服務:在cmd命令行窗口中進入%EXAMPLE_HOME%目錄下執行命令bin\wrapper.exe -p ..\conf\wrapper.conf即可停止服務。

刪除服務:在cmd命令行窗口中進入%EXAMPLE_HOME%目錄下執行命令bin\wrapper.exe -r ..\conf\wrapper.conf即可刪除服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章