技术杂谈
🖥️Windows-操作-中SpringBoot做成服务启动
00 分钟
2024-2-20
2024-3-28
type
status
date
slug
summary
tags
category
icon
password

前情提要

Windows+SpringBoot的jar包项目,做成Windows服务启动方式。

方法一:bat脚本方式

第一步:制作bat脚本

做一个很简单的bat脚本:在你的SpringBoot的jar包的同目录下,建一个txt文档,改名成.bat后缀就行了,里面的内容就是启动SpringBoot服务的命令,比如
做完之后,可以双击运行改脚本,试一试脚本是否好使。

第二步:初始化服务

1.下载工具

下载微软系统小工具instsrv.exe和srvany.exe复制到C:\Windows\System32目录(64位操作系统复制一份到C:\Windows\SysWOW64目录下)。
链接:https://pan.baidu.com/s/1_8eHAiJWc2FBBUZ9t3EiNA 提取码:27xg

2.运行工具

然后打开cmd,运行命令,其中ServiceName为你要创建的服务名
运行成功后如下
notion image

第三步:修改注册列表

打开注册列表(运行里面运行regedit),打开目录HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\,找到对应的刚才创建的ServiceName。
如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的BAT文件地址。 名称 AppDirectory 值为你要作为服务运行的BAT文件所在文件夹路径。 名称 AppParameters 值为你要作为服务运行的BAT文件启动所需要的参数。
notion image
然后再服务里面就能启动了。

优缺点

此方法部署后,因为是bat脚本启动,当你关掉服务的时候,无法关闭java进程。所以该方法应该只适用做电脑重启后,服务自动启动。

方法二

第一步:初始化服务

和方法一的第二步一样

第二步:修改注册列表

仍然找到方法一的第三步中的位置。如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
称 Application 值为写上运行命令,例如java -jar demo.jar。
notion image
然后服务就能启动了。

优缺点

这样启动,虽然能在服务中进行启动已经停止。但是因为命令操作是在服务中进行的,文件读取是在system中进行的,如果部署的是springboot的jar包,那只能读取包内部的配置文件,如果配置的日志是相对路径,那么结果生成的也是相对于system文件夹的路径。

备注

删除服务的命令

方法三(推荐)

使用WinSW的方式进行。

第一步:下载WinSW

通过上述网站下载WinSW-x64.exe(如果是32位则下载x86),以及sample-minimal.xml(sample-allOptions.xml为最全的,可以下载下来进行学习。sample-minimal.xml为最小配置数)。
notion image

第二步:配置xml

修改下载的sample-minimal.xml,如下图所示,将前五个参数进行修改

第三步:运行WinSW

运行命令如下: winsw install 安装服务 winsw uninstall 卸载服务 winsw start 开启服务 winsw stop 停止服务 winsw restart 重新启动服务 winsw status 检查服务的当前状态
  • ---------------------------------END---------------------------------
天行健,君子以自强不息;地势坤,君子以厚德载物