將java應用(springboot jar)註冊成Windows服務

將java應用註冊成Windows服務

將java應用程序jar註冊成windows服務隨機自啓動,不再需要命令窗口打開,避免誤操作。以springboot爲例。

首先準備好一個完整的springboot項目,我們修改pom.xml文件,將其打包成jar

使用eclipse打包,右擊項目名,選擇 Run as > Maven build...

輸入Goals爲package,選擇跳過測試Skip Tests,然後run

結束後在項目目錄target下可找到jar

打包的工具有很多種,這裏主要介紹winsw,其他方式如直接使用sc命令sc create 這種方式註冊的服務往往會啓動報錯,另一種方式是使用procrun,此方法對於一般的jar包好使,但是springboot打包成jar後

與普通jar不同,class文件在BOOT-INF下,註冊完啓動後會class not found,解決方法參考文章:

https://www.2cto.com/kf/201801/714529.html 還是有些麻煩,且我想把所有的文件都打包入jar,故換方法,最終選擇winsw註冊

winsw是一款可將可執行程序安裝成Windows Service的開源工具,github:https://github.com/kohsuke/winsw/releases

使用方法也很簡單,只需要必須的exe和一個xml配置文件即可,我們選擇下載WinSW.NET4.exe,兩個配置文件可以下載下來用於參考

首先創建文件夾RZSpider,將打包好的jar改名爲RZSpider.jar,將剛剛下載好的winsw更名爲RZSpider.exe一起復制進去,創建一個xml文件RZSpider.xml用於配置註冊信息,再創建兩個bat文件用於安裝和卸載服務,創建一個bin文件夾用於存放啓動停止服務的bat文件,後兩項可以不創建。

springboot需要的文件資源config和lib以及resources

接下來書寫xml配置,配置信息如下

<configuration> 
     <id>RZSpiderService</id> 
     <name>RZSpiderService</name>
     <description>This is RZSpider service.</description>
     <executable>java</executable> 
    <arguments>-jar RZSpider.jar</arguments>
     <!-- 開機啓動 -->
     <startmode>Automatic</startmode>
     <!-- 日誌配置 -->
     <logpath>logs/service</logpath>
     <logmode>rotate</logmode>
 </configuration>

id爲任務管理器中服務名,配置開啓自啓動以及日誌目錄,最簡配置即可,配置好之後實際上就可以註冊服務了,我們在RZSpider目錄下按住shift同時右擊鼠標選擇在此處打開命令窗口,輸入RZSpider.exe install即可安裝服務,輸入RZSpider.exe uninstall即卸載服務,同樣啓動停止重啓即,start ,stop ,restart。

爲了方便起見,我們將命令寫入bat文件,這樣直接雙擊即可完成相同命令,RZSpider目錄下注冊和卸載服務的bat文件內容簡單如下

把命令集合放入bin目錄

注意bin目錄下bat命令要使用相對目錄

..\RZSpider.exe start

註冊成功

啓動,查看日誌

訪問一下

成功。

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