如何将SpringBoot程序设为本地后台服务随PC开机自动启动?
本地部署SpringBoot应用并设置开机自启(无窗口后台运行)
针对无法使用Docker且需要本地后台开机自启的场景,分Windows、Linux/macOS两种系统给出具体方案:
Windows系统方案
方法1:VBS脚本+开机启动文件夹(快速实现)
- 打包Jar包:用Maven或Gradle将SpringBoot项目打包为可执行Jar,比如
your-app.jar:- Maven:
mvn clean package - Gradle:
gradle build
- Maven:
- 创建隐藏窗口启动脚本:新建
start-app.vbs文件,内容如下(替换Jar的实际路径):
其中Set WshShell = CreateObject("WScript.Shell") WshShell.Run "java -jar D:\projects\your-app.jar", 0 Set WshShell = Nothing0参数表示完全隐藏CMD窗口。 - 设置开机自启:按下
Win + R输入shell:startup,打开开机启动文件夹,将start-app.vbs复制到该文件夹即可。
方法2:注册为Windows服务(稳定可靠,推荐)
使用WinSW工具(无需Hyper-V,轻量级服务包装器):
- 下载WinSW的对应版本exe(如
WinSW-x64.exe),重命名为your-app-service.exe,和Jar包放在同一目录。 - 创建配置文件
your-app-service.xml,内容如下(替换Jar路径):<service> <id>YourSpringBootApp</id> <name>你的SpringBoot应用服务</name> <description>后台运行的SpringBoot应用服务</description> <executable>java</executable> <arguments>-jar D:\projects\your-app.jar</arguments> <logmode>rotate</logmode> <!-- 日志自动轮转 --> </service> - 安装并启动服务:以管理员身份打开CMD,进入Jar所在目录,执行:
- 安装服务:
your-app-service.exe install - 启动服务:
your-app-service.exe start
之后可在Windows「服务」面板中管理该应用的启停、开机自启状态。
- 安装服务:
Linux/macOS系统方案
Linux:systemd服务管理
- 打包并授权Jar包:打包得到
your-app.jar后,赋予执行权限:chmod +x your-app.jar - 创建systemd服务文件:新建
/etc/systemd/system/your-app.service,内容如下(替换用户名和Jar路径):[Unit] Description=SpringBoot应用服务 After=network.target [Service] User=your-username ExecStart=/usr/bin/java -jar /home/your-username/projects/your-app.jar Restart=always # 异常退出自动重启 RestartSec=5 StandardOutput=journal+console StandardError=journal+console [Install] WantedBy=multi-user.target - 配置开机自启:
- 刷新systemd配置:
sudo systemctl daemon-reload - 设置开机自启:
sudo systemctl enable your-app.service - 启动服务:
sudo systemctl start your-app.service
- 刷新systemd配置:
macOS:LaunchAgent实现开机自启
- 打包Jar包:同样得到可执行Jar包。
- 创建LaunchAgent配置文件:新建
~/Library/LaunchAgents/com.your.app.plist,内容如下(替换Jar路径):<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.your.app</string> <key>ProgramArguments</key> <array> <string>/usr/bin/java</string> <string>-jar</string> <string>/Users/your-username/projects/your-app.jar</string> </array> <key>RunAtLoad</key> <true/> <!-- 开机时加载 --> <key>KeepAlive</key> <true/> <!-- 异常退出自动重启 --> <key>StandardErrorPath</key> <string>/var/log/your-app-error.log</string> <key>StandardOutPath</key> <string>/var/log/your-app.log</string> </dict> </plist> - 加载并启动服务:
- 加载配置:
launchctl load ~/Library/LaunchAgents/com.your.app.plist - 启动服务:
launchctl start com.your.app
开机后应用会自动后台运行,如需卸载执行:launchctl unload ~/Library/LaunchAgents/com.your.app.plist
- 加载配置:
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

