由于通过java -jar方式启动的springboot程序需要有一个cmd窗口,无法实现Linux上nohup命令的后台 运行效果。所以需要将开发的springboot程序注册成windows服务,实现开机自启和无窗口运行。
1.下载WinSW.NET4.exe
下载地址:https://github.com/kohsuke/winsw/releases
此文件下载完成之后需要与程序放在同级目录,并修改名称为 程序名.exe。
2.创建初始化服务的xml文件
创建一个xml文件,此xml文件也需要与程序同名,用于初始化服务。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<service>
<!-- 服务ID -->
<id>healthcare-pay-service</id>
<!-- 服务名称 -->
<name>healthcare-pay-service</name>
<!-- 服务描述 -->
<description>医保移动支付中间件</description>
<!-- jar包运行参数,指定运行程序的jdk位置 -->
<executable>C:\Program Files\Java\jdk1.8.0_45\bin\java.exe</executable>
<!-- -jar之后是jar包名称 -->
<arguments> -Xms1024m -Xmx2048m -jar -Dfile.encoding=utf-8 healthcare-payservice.jar --spring.profiles.active=prod-lsxyy </arguments>
<!-- 日志配置 -->
<logpath>D:\healthcare-service\logs</logpath>
<logmode>rotate</logmode>
</service>
此时目录下的内容如下:
3.初始化服务
使用管理员身份打开cmd窗口,注意一定要使用管理员身份打开,否则服务无法启动时无法删除服务。 进入程序目录
#输入
healthcare-pay-service.exe install
使用 healthcare-pay-service.exe install 命令安装服务,未出现错误信息即代表安装成功。如果 提示错误信息,检查exe,jar,xml文件名是否完全一致,文件后缀名是否有打开显示,以及xml文件中的 内容是否无误。 安装成功之后打开服务面板,可以看到已经安装成功的服务。 选中服务,右键属性打开,可以在启动类型选择是否开机自启,根据自己的需求来调整。关掉窗口,选 中服务,右键启动即可运行springboot程序,状态显示 正在运行 则表示启动成功,程序在后台运行, 无cmd窗口,实现所需效果。 务更新和删除 更新程序只需要到服务列表右键停止就好了,然后把新的jar包放到目录下,再回到服务列表右键重新启 动服务即可完成更新。需要注意的时更新的jar包名称必须与原名称保持一致,否则服务无法启动。 删除服务需要使用管理员身份打开cmd窗口,使用 sc delete healthcare-pay-service命令删除服务, healthcare-pay-service 需要更换为自己的服务名称。