用途:使用Spring Boot開發的Web項目,打包生成了一個jar包,部署在Windows服務器中,設置為開機啟動
其它失敗方案:
1、Spring Boot生成的jar包,可以直接用java -jar運行,但是前提是需要登錄用戶,而且注銷用戶后會退出程序,所以不可用。
2、使用計劃任務,寫一個bat處理文件,里面寫java -jar運行程序,然后把bat文件作為一個計劃任務運行;結果可能是因為任務啟動時,系統資源未準備好,所以沒有成功。
最佳方案:使用winsw,winsw是一個開源項目,程序以及源碼可以在Git Hub下載:
https://github.com/kohsuke/winsw/releases
winsw是一個可以將任何應用程序注冊成服務的軟件,使用方法如下:
1、將Git Hub中下載的WinSW.NET4.exe和sample-minimal.xml文件及springboot項目的jar包放在同一個文件夾中。
2、需要將winsw執行程序跟xml改成同樣的名字,推薦使用項目名+Service的命名方式,比如:WinSW.NET4.exe改成myProjectService.exe,sample-minmal.xml改成myProjectService.xml。
3、編輯myProjectService.xml文件,內容如下
<configuration>
<!--安裝成Windows服務后的服務名-->
<id>myProjectServiceID</id>
<!--顯示的服務名稱-->
<name>myProjectServiceName</name>
<!--對服務的描述-->
<description>此處可填寫該服務的描述</description>
<!--這里寫java的路徑,如何配置了環境變量直接寫"java"就行-->
<executable>java</executable>
<!--Xmx256m 代表堆內存最大值為256MB -jar后面的是項目名-->
<arguments>-Xmx256m -jar myProject.jar</arguments>
<!--日志模式-->
<logmode>rotate</logmode>
</configuration>
4、打開系統服務功能:運行——輸入cmd,然后進入到myProjectService.exe所在文件夾,然后執行命令安裝服務命令:myProjectService.exe install。
5、命令提示符界面輸入命令“net start myProjectServiceName”啟動服務。
6、打開系統服務功能:運行——輸入services.msc,即可看見自己命名的服務myProjectServiceName。
7、測試 :重啟電腦后該服務會自動啟動,執行第6步可檢查是否成功。
8、刪除服務分為兩步:1停止服務;2刪除服務,都是在命令行界面實現。
命令提示符界面輸入命令"net stop myProjectServiceName"停止運行服務。
命令提示符界面輸入命令"myProjectService.exe uninstall"可刪除服務
9.上面所有的命令都可以寫在批處理文件中,部署的時候就可以實現一鍵部署了。
例如myProjectStart.bat內容如下:
myProjectService.exe install
net start myProjectServiceName
例如myProjectStop.bat內容如下:
net stop myProjectServiceName
myProjectService.exe uninstall
10.如果沒有成功可以查看日志找原因,日志文件在同級目錄:
最后,本文如有疏忽錯誤,請指教