將java程式做成windows系統服務
阿新 • • 發佈:2019-01-03
採用的Java Service Wrapper工具, 下載地址:
http://sourceforge.net/projects/wrapper/files/(當下最新版為3.5.6的)
步驟:
1、解壓縮java service wrapper包,假設目錄為:wrapper_home
2、建立一個目錄比如:D盤server資料夾裡面建立bin、conf、logs、lib資料夾。
3、將wrapper_home/bin目錄裡wrapper.exe
將wrapper_home/src/bin目錄裡App.bat.in
將wrapper_home/src/bin目錄裡InstallApp-NT.bat.in
將wrapper_home/src/bin目錄裡UninstallApp-NT.bat.in
統一拷貝至server/bin目錄裡,並去掉字尾名in。
將wrapper_home/src/conf目錄wrapper.conf.in拷貝至server/conf目錄裡去掉字尾名in
再將wrapper_home/lib/目錄裡面的wrapper.jar和wrapper.dll拷貝至server/lib目錄裡面
4、將你的應用程式打成jar包後放入server/lib目錄裡面,如果程式依賴第三方架包,同樣將jar包放入該目錄下。
5、配置server/conf/wrapper.conf檔案。
主要修改以下幾項即可:
#你的JVM位置(文中有進行設定的地方...):
wrapper.java.command=%JAVA_HOME%\bin\java
#classpath:裡面新增上你要執行的應用程式jar,以及依賴的第三方jar,有多個依次類推
wrapper.java.classpath.1=../lib/應用程式.jar
wrapper.java.classpath.2=../lib/wrapper.jar
wrapper.java.classpath.3=../bin/第三方.jar
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
#你的Java應用類(一般而言就是包含main函式的類),
wrapper.app.parameter.1= service.Server.Serverbegin
# 服務名
wrapper.name=server
# Display name of the service
wrapper.displayname=server
# 服務描述
wrapper.ntservice.description=receive message
其他的配置根據你的需要改變即可
6. 對以上配置的App.bat進行測試,執行App.bat,dos視窗中顯示;
7. 對以上配置的服務進行測試,執行server/bin/InstallApp-NT.bat將把你的應用(此處為server)安裝到Win32系統服務中了。
8. 開啟控制面板-管理程式-服務,看到server已經在系統服務中了,其他用法就與我們熟悉的Windows服務一樣了。
bin/App.bat 控制檯方式執行程式
bin/InstallApp-NT.bat 安裝服務
bin/UninstallApp-NT.bat 刪除服務
wrapper.java.library.path.1=../lib(存放.dll的位置)
#MAIN CLASS 此處決定了使用Java Service Wrapper的方式
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
(注意: 此處不是指你自己的java類,而是表明你採用的方式)
需要強調的是: 如果你工程的jar包很多的話可以採取正則表示式的方式,例如我的lib下有80個jar檔案,那麼你可以使用/*.jar的形式。 經本人驗證OK!
附加說明: 由於本人是在虛擬機器下執行上述實驗的,不便截圖與複製配置檔案內容回本機, 因此截圖與配置檔案都是copy網上的(可能部分檔名有出入,自己摸索一下)... ...
看到有另外一種做法:http://liubey.iteye.com/blog/701993
http://sourceforge.net/projects/wrapper/files/(當下最新版為3.5.6的)
步驟:
1、解壓縮java service wrapper包,假設目錄為:wrapper_home
2、建立一個目錄比如:D盤server資料夾裡面建立bin、conf、logs、lib資料夾。
3、將wrapper_home/bin目錄裡wrapper.exe
將wrapper_home/src/bin目錄裡App.bat.in
將wrapper_home/src/bin目錄裡InstallApp-NT.bat.in
將wrapper_home/src/bin目錄裡UninstallApp-NT.bat.in
統一拷貝至server/bin目錄裡,並去掉字尾名in。
將wrapper_home/src/conf目錄wrapper.conf.in拷貝至server/conf目錄裡去掉字尾名in
再將wrapper_home/lib/目錄裡面的wrapper.jar和wrapper.dll拷貝至server/lib目錄裡面
4、將你的應用程式打成jar包後放入server/lib目錄裡面,如果程式依賴第三方架包,同樣將jar包放入該目錄下。
5、配置server/conf/wrapper.conf檔案。
主要修改以下幾項即可:
#你的JVM位置(文中有進行設定的地方...):
wrapper.java.command=%JAVA_HOME%\bin\java
#classpath:裡面新增上你要執行的應用程式jar,以及依賴的第三方jar,有多個依次類推
wrapper.java.classpath.1=../lib/應用程式.jar
wrapper.java.classpath.2=../lib/wrapper.jar
wrapper.java.classpath.3=../bin/第三方.jar
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
#你的Java應用類(一般而言就是包含main函式的類),
wrapper.app.parameter.1= service.Server.Serverbegin
# 服務名
wrapper.name=server
# Display name of the service
wrapper.displayname=server
# 服務描述
wrapper.ntservice.description=receive message
其他的配置根據你的需要改變即可
6. 對以上配置的App.bat進行測試,執行App.bat,dos視窗中顯示;
7. 對以上配置的服務進行測試,執行server/bin/InstallApp-NT.bat將把你的應用(此處為server)安裝到Win32系統服務中了。
8. 開啟控制面板-管理程式-服務,看到server已經在系統服務中了,其他用法就與我們熟悉的Windows服務一樣了。
bin/App.bat 控制檯方式執行程式
bin/InstallApp-NT.bat 安裝服務
bin/UninstallApp-NT.bat 刪除服務
wrapper.java.library.path.1=../lib(存放.dll的位置)
#MAIN CLASS 此處決定了使用Java Service Wrapper的方式
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
(注意: 此處不是指你自己的java類,而是表明你採用的方式)
需要強調的是: 如果你工程的jar包很多的話可以採取正則表示式的方式,例如我的lib下有80個jar檔案,那麼你可以使用/*.jar的形式。 經本人驗證OK!
附加說明: 由於本人是在虛擬機器下執行上述實驗的,不便截圖與複製配置檔案內容回本機, 因此截圖與配置檔案都是copy網上的(可能部分檔名有出入,自己摸索一下)... ...
看到有另外一種做法:http://liubey.iteye.com/blog/701993