如何將Spring Boot項(xiàng)目部署為Windows服務(wù),并設(shè)置開機(jī)啟動(dòng)

用途:使用Spring Boot開發(fā)的Web項(xiàng)目,打包生成了一個(gè)jar包,部署在Windows服務(wù)器中,設(shè)置為開機(jī)啟動(dòng)

其它失敗方案:

1、Spring Boot生成的jar包,可以直接用java -jar運(yùn)行,但是前提是需要登錄用戶,而且注銷用戶后會(huì)退出程序,所以不可用。

2、使用計(jì)劃任務(wù),寫一個(gè)bat處理文件,里面寫java -jar運(yùn)行程序,然后把bat文件作為一個(gè)計(jì)劃任務(wù)運(yùn)行;結(jié)果可能是因?yàn)槿蝿?wù)啟動(dòng)時(shí),系統(tǒng)資源未準(zhǔn)備好,所以沒有成功。

最佳方案:使用winsw,winsw是一個(gè)開源項(xiàng)目,程序以及源碼可以在Git Hub下載:

https://github.com/kohsuke/winsw/releases

winsw是一個(gè)可以將任何應(yīng)用程序注冊成服務(wù)的軟件,使用方法如下:

1、將Git Hub中下載的WinSW.NET4.exe和sample-minimal.xml文件及springboot項(xiàng)目的jar包放在同一個(gè)文件夾中。


1535104193(1).png

2、需要將winsw執(zhí)行程序跟xml改成同樣的名字,推薦使用項(xiàng)目名+Service的命名方式,比如:WinSW.NET4.exe改成myProjectService.exe,sample-minmal.xml改成myProjectService.xml。


1535104250(1).png

3、編輯myProjectService.xml文件,內(nèi)容如下

<configuration>
  
    <!--安裝成Windows服務(wù)后的服務(wù)名-->
    <id>myProjectServiceID</id>
    <!--顯示的服務(wù)名稱-->
    <name>myProjectServiceName</name>
    <!--對(duì)服務(wù)的描述-->
    <description>此處可填寫該服務(wù)的描述</description>
    <!--這里寫java的路徑,如何配置了環(huán)境變量直接寫"java"就行-->
    <executable>java</executable>
    <!--Xmx256m 代表堆內(nèi)存最大值為256MB -jar后面的是項(xiàng)目名-->
    <arguments>-Xmx256m -jar myProject.jar</arguments>
    <!--日志模式-->
    <logmode>rotate</logmode>

</configuration>

4、打開系統(tǒng)服務(wù)功能:運(yùn)行——輸入cmd,然后進(jìn)入到myProjectService.exe所在文件夾,然后執(zhí)行命令安裝服務(wù)命令:myProjectService.exe install。


1535105633(1).png

5、命令提示符界面輸入命令“net start myProjectServiceName”啟動(dòng)服務(wù)。


1535184837(1).png

6、打開系統(tǒng)服務(wù)功能:運(yùn)行——輸入services.msc,即可看見自己命名的服務(wù)myProjectServiceName。


1535185077(1).png

7、測試 :重啟電腦后該服務(wù)會(huì)自動(dòng)啟動(dòng),執(zhí)行第6步可檢查是否成功。

8、刪除服務(wù)分為兩步:1停止服務(wù);2刪除服務(wù),都是在命令行界面實(shí)現(xiàn)。

      命令提示符界面輸入命令"net stop myProjectServiceName"停止運(yùn)行服務(wù)。
1535184265(1).png
      命令提示符界面輸入命令"myProjectService.exe uninstall"可刪除服務(wù)
1535184342(1).png

9.上面所有的命令都可以寫在批處理文件中,部署的時(shí)候就可以實(shí)現(xiàn)一鍵部署了。

    例如myProjectStart.bat內(nèi)容如下:
    myProjectService.exe install
    net start myProjectServiceName

    例如myProjectStop.bat內(nèi)容如下:
    net stop myProjectServiceName
    myProjectService.exe uninstall

10.如果沒有成功可以查看日志找原因,日志文件在同級(jí)目錄:


1535185961(1).png

最后,本文如有疏忽錯(cuò)誤,請指教

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,282評(píng)論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,659評(píng)論 19 139
  • 入門 介紹 Spring Boot Spring Boot 使您可以輕松地創(chuàng)建獨(dú)立的、生產(chǎn)級(jí)的基于 Spring ...
    Hsinwong閱讀 17,099評(píng)論 2 89
  • 一、基礎(chǔ)語法: 1.批處理文件是一個(gè)“.bat”結(jié)尾的文本文件,這個(gè)文件的每一行都是一條DOS命令。可以使用任何文...
    蔣_Sir閱讀 9,393評(píng)論 1 4
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多,請查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,539評(píng)論 1 19

友情鏈接更多精彩內(nèi)容