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为你要创建的服务名
运行成功后如下

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

然后再服务里面就能启动了。
优缺点
此方法部署后,因为是bat脚本启动,当你关掉服务的时候,无法关闭java进程。所以该方法应该只适用做电脑重启后,服务自动启动。
方法二
第一步:初始化服务
和方法一的第二步一样
第二步:修改注册列表
仍然找到方法一的第三步中的位置。如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
称 Application 值为写上运行命令,例如java -jar demo.jar。

然后服务就能启动了。
优缺点
这样启动,虽然能在服务中进行启动已经停止。但是因为命令操作是在服务中进行的,文件读取是在system中进行的,如果部署的是springboot的jar包,那只能读取包内部的配置文件,如果配置的日志是相对路径,那么结果生成的也是相对于system文件夹的路径。
备注
删除服务的命令
方法三(推荐)
使用WinSW的方式进行。
第一步:下载WinSW
通过上述网站下载WinSW-x64.exe(如果是32位则下载x86),以及sample-minimal.xml(sample-allOptions.xml为最全的,可以下载下来进行学习。sample-minimal.xml为最小配置数)。

第二步:配置xml
修改下载的sample-minimal.xml,如下图所示,将前五个参数进行修改
第三步:运行WinSW
运行命令如下:
winsw install 安装服务
winsw uninstall 卸载服务
winsw start 开启服务
winsw stop 停止服务
winsw restart 重新启动服务
winsw status 检查服务的当前状态
- ---------------------------------END---------------------------------
天行健,君子以自强不息;地势坤,君子以厚德载物
- 作者:Doubletree
- 链接:https://blog.doubletree.fun/article/a1fbf7a2-6db1-4394-8c4a-bc1bb84e8bc9
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。