步骤1:下载并安装WinSW
下载WinSW: 访问WinSW官方网站或下载页面,选择与电脑(32位或64位)匹配的版本下载。下载完成,统一将其放在一个新建目录下。
步骤2:准备Spring Boot应用程序
构建Spring Boot JAR
包:确保你的Spring Boot
项目已经打包成一个可执行的JAR
文件。再将我们刚才IDEA
打包好的JAR
包一并拷贝至该目录,将三个文件统一修改为一个项目名。
步骤3:编辑WinSW配置文件,修改配置,编辑xml
配置文件:
<service>
<!-- 设置唯一ID -->
<id>LSCS-Service</id>
<!-- 设置服务名称 -->
<name>LSCS-Service</name>
<!-- 设置服务描述 -->
<description>This service runs My Spring Boot Application.</description>
<!-- 指定执行程序 -->
<executable>java</executable>
<!-- 启动参数:设置使用外部配置,也可指定jar包路径 -->
<arguments>
<argument>-Xms512m -Xmx1024m -jar lscs.jar --spring.config.location=./config/application.yml</argument>
</arguments>
<!-- 设置开机自启动 -->
<startmode>Automatic</startmode>
<!-- 控制日志-->
<logpath>./service/logs</logpath>
<log mode="roll-by-size">
<!-- 一个日志文件大小1MB,单位是K-->
<sizeThreshold>1024</sizeThreshold>
<!-- 一共有8个日志文件,-->
<keepFiles>8</keepFiles>
<pattern>yyyyMMdd</pattern>
</log>
</service>
- 在你的项目目录中创建一个名为lscs.xml的文件。
- 使用文本编辑器(如Notepad++或VS Code)打开该文件,并添加以下内容。
- 注意:详细配置示例请参考
id
:服务的唯一标识符。name
:服务显示的名称。description
:服务的描述。executable
:指定执行程序,这里是java。arguments
:传递给Java虚拟机的参数。startmode
:设置为auto表示服务在系统启动时自动启动。logmode和logpath
:日志配置,可以根据需要调整。
步骤4:新建启动和停止服务脚本文件
在jar
包存放路径新建start.bat
、stop.bat
脚本文件。
#注册服务
lscs.exe install
#启动服务
net start LSCS-Service
#停止服务
net stop LSCS-Service
#卸载服务
lscs.exe uninstall
步骤5:启动服务
- 注册并启动服务:以管理员权限运行
start.bat
,脚本命令将服务注册到Windows服务管理器中。 - 验证服务状态:通过
服务
管理工具检查。
* 按Win + R
,输入services.msc
,回车。
* 在服务列表中找到你定义的服务名称(如My Spring Boot Application
),检查其状态是否为已启动
。
步骤6:配置服务自动启动
- 设置服务自动启动:
- 在
服务
管理工具中,右键点击你的服务,选择属性
。 - 在
启动
选项卡中,将启动类型设置为“自动”。 - 点击
应用
保存设置。
- 在
步骤7:测试服务
重启计算机:
- 重启系统,检查服务是否自动启动。
- 确认应用程序是否在后台正常运行,可以通过访问应用的API端点或查看日志文件确认。
步骤8:停止并卸载服务
停止并卸载服务:以管理员权限运行stop.bat
注意事项
- 路径检查:
- 确保
winsw.xml
和JAR文件的路径正确,特别是在winsw.xml
中指定的路径。
- 确保
- 权限问题:
- 所有命令必须以管理员权限运行,否则可能会导致注册失败或服务无法启动。
- 日志文件:
- 服务运行时会生成日志文件,通常在项目目录下。检查日志可以帮助诊断问题。
- Java环境变量:
- 确保系统环境变量中已配置好
JAVA_HOME
,并且路径正确,否则服务可能无法启动。
- 确保系统环境变量中已配置好
常见问题排查
- 服务无法启动:
- 检查日志文件,查看错误信息。
- 确认JAR包路径正确,且JAR文件存在。
- 确保Java环境变量配置正确。
- 权限问题:
- 确保所有命令在管理员权限下运行。
- 检查服务的用户配置,可能需要配置为特定用户启动。
- 服务未自动启动:
- 检查服务属性中的启动类型是否为“自动”。
- 确保服务没有被手动停止。
通过以上步骤,你可以成功地将Spring Boot
应用部署为Windows
系统服务,并实现开机自动启动。如果在过程中遇到任何问题,检查日志文件和系统事件日志将有助于快速定位和解决问题。