參考:用winsw讓任何Windows程序都能運行爲服務html
簡介
在linux下部署springboot項目是一件很簡單的事,直接後臺運行就好了,最多寫個shell腳本開機自啓就好了。咱們最近作的項目須要在windows上部署,在windows上運行jar有一個問題,運行的時候會彈出一個cmd窗口,而且不能關閉,關閉的話程序就中止了。spring官方推薦使用winsw來將springboot項目做爲服務運行,參考https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#deployment-windows。linux
安裝使用git
下載地址:https://github.com/kohsuke/winsw/releases
winsw的使用比較簡單。從github上下載:winsw下載,要下載的文件有兩個:1.winsw.exe程序;2.xml配置文件。github
我下載的是最新版本的WinSW.NET4.exe和sample-minimal.xml。下載完成後,將下載的兩個文件及springboot項目的jar包放在同一個文件夾中。spring
須要將winsw執行程序跟xml改爲一樣的名字,推薦使用項目名+Service的命名方式,shell
好比:WinSW.NET4.exe改爲 myProjectService.exe,sample-minmal.xml 改爲myProjectService.xml。windows
編輯myProjectService.xml文件,配置以下圖:springboot
配置完成後,命令行進入winsw所在的文件夾,執行添加服務命令spring-boot
myProjectService.exe install
其中myProjectService是你修改後的名稱。spa
注意:命令提示符界面要用管理員權限進入,不然安裝服務會失敗,提示「WMI Operation failure: AccessDenied」
進入服務界面,能夠看到myProject服務已經生成了:
命令提示符界面-啓動服務。
net start myProject
刪除服務
刪除服務分爲兩步:1中止服務;2刪除服務,都是在命令行界面實現。
中止運行服務。
net stop myProject
刪除服務。
myProjectService.exe uninstall
最後
上面全部的命令均可以寫在批處理文件中,部署的時候就能夠實現一鍵部署了。
將命令寫在批處理文件中,但願將批處理文件默認爲管理員權限打開,能夠在批處理文件的開頭寫上:
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0"
轉載:https://blog.csdn.net/qq_28566071/article/details/80882503