Windows11 运行 SpringBoot Jar 完整教程(新手版)
前置条件:电脑装好 JDK
1. 检查是否安装 Java
- 按下
Win + R,输入cmd打开命令提示符 / PowerShell - 输入命令:
java -version
- 输出版本号(1.8 / 17)→ 已就绪
- 提示“不是内部命令” → 先安装 JDK8 / JDK17,并配置环境变量
一、临时运行(黑窗口关了程序就停,仅本地测试)
方式1:CMD 命令运行
- 把打包好的
yudao.jar放到一个好找的文件夹,例如:D:\project\jar - 在文件夹地址栏直接输入 cmd,回车,直接打开当前目录的终端
- 执行启动命令:
java -jar yudao.jar
- 看到日志输出
Started xxxApplication就是启动成功缺点:关闭 cmd 窗口,服务立刻停止,只适合临时调试。
限制内存启动(低配电脑必用)
java -Xms256m -Xmx512m -jar yudao.jar
-Xms256m:初始内存256M-Xmx512m:最大占用512M,防止吃掉全部内存
二、后台静默运行(不弹出黑窗口,推荐本地长期跑)
方案1:用 start /b 后台启动(自带工具,无需安装软件)
- 在 jar 目录打开 cmd,执行:
start /b java -jar yudao.jar > run.log 2>&1
- 后台运行,不会弹出新黑窗口
- 日志全部输出到
run.log文件里,想看日志直接打开文件
停止服务(关键)
Windows 没有 grep,用这条命令找到 Java 进程并关闭:
# 查找占用端口的进程(比如8080)netstat -ano | findstr "8080"# 最后一列数字是 PID,强制结束进程taskkill /F /PID 这里填查到的数字
方案2:写一键启动脚本(双击直接运行,懒人必备)
- 在 jar 同目录新建文本文档,重命名为
start.bat(后缀必须改成.bat) - 右键编辑,写入下面代码:
@echo offecho 正在启动 yudao 服务...java -Xms256m -Xmx512m -jar yudao.jarpause
- 保存后双击
start.bat直接启动,关闭窗口就停止服务。
后台无窗口版脚本 start_silent.bat
@echo offecho 后台启动服务,日志输出 run.logstart /b java -Xms256m -Xmx512m -jar yudao.jar > run.log 2>&1echo 启动完成,关闭此窗口即可pause
方案3:注册 Windows 系统服务(开机自启,完全后台,生产级本地部署)
使用工具 nssm 把 jar 做成系统服务,开机自动启动、无黑窗口、异常自动重启
- 下载 NSSM:解压后根据系统位数选择
win64文件夹 - 以管理员身份打开 cmd,进入 nssm 目录
- 安装服务命令:
nssm install YudaoService
- 弹出配置窗口:
- Path:选择你的
java.exe路径(如C:\Program Files\Java\jdk-17\bin\java.exe) - Arguments:填写
-Xms256m -Xmx512m -jar D:\project\jar\yudao.jar
- Path:选择你的
- 点击 OK,服务创建完成
服务管理命令(管理员CMD)
# 启动服务nssm start YudaoService# 停止服务nssm stop YudaoService# 卸载服务nssm remove YudaoService
三、常见 Windows11 踩坑解决
提示java不是内部命令 JDK 未配置环境变量,重新安装 JDK 并配置
JAVA_HOME、Path。端口被占用无法启动
# 查询8080端口PIDnetstat -ano | findstr "8080"# 强制杀死进程taskkill /F /PID 进程数字
双击bat一闪而过 脚本末尾加
pause,运行失败会保留窗口,查看报错信息。防火墙拦截,其他设备访问不了 Windows防火墙 → 高级设置 → 入站规则 → 新建规则,放行项目端口(8080)。
Windows vs Ubuntu 运行核心区别
| 场景 | Windows11 | Ubuntu22.04 | |
|---|---|---|---|
| 前台运行 | cmd/bat 脚本 | java -jar xxx.jar | |
| 后台常驻 | start /b / NSSM 服务 | nohup / systemd 系统服务 | |
| 杀进程 | netstat + taskkill | ps -ef | grep java + kill |
| 开机自启 | NSSM注册系统服务 | systemctl enable | |
| 日志 | 输出本地文件 | nohup日志 / journalctl |
