spring boot的jar包部署成window服务
jar对应window服务生成
springboot项目可以直接在cmd中使用 java -jar
这种方法可以快速启动
但有个问题就是关掉cmd窗口程序就会停止,因此本系统采用了将后台做成windows服务的方式启动
这里用到了winsw插件,winsw是一个开源项目
程序以及源码可以在Git Hub下载:
https://github.com/kohsuke/winsw/releases
winsw是一个可以将任何应用程序注册成服务的软件,使用方法如下
将Git Hub中下载的WinSW.NET4.exe和sample-minimal.xml文件及项目的jar包放在同一个文件夹
需要将winsw执行程序跟xml改成同样的名字,推荐使用项目名+Service的命名方式,比如:WinSW.NET4.exe
改成xxxService.exe
,sample-minmal.xml
改成xxxService.xml
编辑xxxService.xml
文件,内容如下
注:此处注意,如果用的是文本编辑器修改,务必将编码格式换成Unicode编码
# Logging log mode
https://github.com/icirellik/winsw
启动,打开系统服务功能:以管理员身份运行cmd,否则在安装服务是报如下错误
FATAL - WMI Operation failure: AccessDenied
然后进入到xxxService.exe所在文件夹,然后执行命令安装服务命令:xxxService.exe install
命令提示符界面输入命令net start xxxService
(服务名)启动服务
xxxService
与xxxService.xml
定义的Id
一致
在服务中可找到此服务
启动服务命令:
# **earlyWarningService.exe install** 命令仅在first创建服务时运行即可,后续更新jar包重启服务不需要执行
earlyWarningService.exe install
net start earlyWarningService
关闭服务命令:
# **earlyWarningService.exe uninstall** 命令仅在删除服务运行,后续更新jar包重启服务不需要执行
net stop earlyWarningService
earlyWarningService.exe uninstall
建议做成脚本执行,即将上面两个命令分别封装在bat脚本里,放在jar包路径下,直接点击即可执行
windows服务开机自启动
备注:项目部署成服务后,后续似乎一直都能自启动,不需要进一步配置了
编写启动脚本start_earlyWarningService.bat
net start earlyWarningService
将start_earlyWarningService.bat拷贝到如下任意路径即可
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
**或**
C:\Users\hwang\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
重新启动即可