本文介绍如何将SpringBoot项目做成windows服务以实现开机自启动的目的。
以我最近开发的项目为例,步骤如下:
1.首先确认好用于项目打包的配置,将项目打成jar包
确认配置文件
mvn clean:
mvn build:
打包完成后,项目的target目录下会生成jar包:
2.注册成windows服务
注册成windows服务是为了项目能够跟随系统开机自启。通常情况下只需要java -jar 上一步骤中生成的jar包即可运行项目,但是如何将jar包变成windows服务?
spring官方文档里推荐了这款工具:winsw
下载地址:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/
此时的最新版本时是2.4.0,下载后得到 winsw-2.4.0-bin.exe;
现在开始将jar包注册成服务:
任意位置新建空目录,放入刚才打包生成的jar包与下载的exe文件,再新建一个空的xml文件,将这三个文件的文件名改成一样的(后缀名不要改,例如app.jar、app.exe、app.xml)。这个xml文件用于配置即将生成的windows服务的信息;
<service>
<id>energy</id>
<name>energy</name>
<description>This service runs myapp project.</description>
<executable>java</executable>
<arguments>-jar "app.jar"</arguments>
<logmode>rotate</logmode>
</service>
- id:id是安装成windows服务后的服务名,id必须是唯一的。
- name:name是服务的简写名字,name也必须是唯一的,这里我设为和id相同。
- description:服务的文字说明。
- executable:执行的命令,因为启动springboot应用的命令是
java -jar app.jar
- arguments:命令执行参数, 如果端口号要在这里设置,可以在后面添上:
--server.port=8080
- 当然还有其它属性,请参考官网上的说明。
【注意】xml配置中需要注意的一是id不能与系统已有重复,二是arguments里的java -jar 执行的jar包要与你放入目录中的jar包名称一致。
打开cmd进入该目录,执行以下命令:
app.exe install //执行完就注册好了
winsw还有其它命令:
uninstall:删除服务
start:启动服务
stop:停止服务
restart:重启服务
status:输出当前服务的状态
3.设置服务开机自启
资源管理器:此电脑》管理》服务和应用》服务;
该步骤也用来检验第二步是否操作成功,可以看到windows服务中出现了刚刚注册的 energy 服务。可以在这个界面中启动和停止该服务。
选中服务,右键单击》管理;设置服务启动类型为“自动”;
确定并重启机器后该服务会随着windows启动而启动。可以看到在刚才用于注册服务创建的文件夹内新增了几个文件,都是项目的日志输出文件:
至此,将springboot项目注册成windows服务的步骤就完成了。