背景:
使用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、下載exe文件,假設改名成winsw.exe
2、同目錄下創建一個同名的xml文件,如winsw.xml
其中參數自己看一下就可以了
<service> <id>myApp</id> <name>myApp</name> <description>To start my app as a service.</description> <executable>java</executable> <arguments>-Xmx256m -jar c:\myApp.jar" --server.port=80</arguments> <logmode>rotate</logmode> </service>
3、使用cmd,用cd命令轉到winsw.exe所在文件夾,然后執行命令
安裝服務命令:winsw.exe install
卸載服務命令:winsw.exe uninstall
4、打開系統服務功能:運行——輸入services.msc,即可看見自己命名的服務myApp
5、設置服務為自動,並啟用即可