Windows11 运行 SpringBoot Jar 完整教程(新手版)

前置条件:电脑装好 JDK

1. 检查是否安装 Java

  1. 按下 Win + R,输入 cmd 打开命令提示符 / PowerShell
  2. 输入命令:
    1. java -version
  • 输出版本号(1.8 / 17)→ 已就绪
  • 提示“不是内部命令” → 先安装 JDK8 / JDK17,并配置环境变量

一、临时运行(黑窗口关了程序就停,仅本地测试)

方式1:CMD 命令运行

  1. 把打包好的 yudao.jar 放到一个好找的文件夹,例如:D:\project\jar
  2. 在文件夹地址栏直接输入 cmd,回车,直接打开当前目录的终端
  3. 执行启动命令:
    1. java -jar yudao.jar
  4. 看到日志输出 Started xxxApplication 就是启动成功

    缺点:关闭 cmd 窗口,服务立刻停止,只适合临时调试。

限制内存启动(低配电脑必用)

  1. java -Xms256m -Xmx512m -jar yudao.jar
  • -Xms256m:初始内存256M
  • -Xmx512m:最大占用512M,防止吃掉全部内存

二、后台静默运行(不弹出黑窗口,推荐本地长期跑)

方案1:用 start /b 后台启动(自带工具,无需安装软件)

  1. 在 jar 目录打开 cmd,执行:
    1. start /b java -jar yudao.jar > run.log 2>&1
  • 后台运行,不会弹出新黑窗口
  • 日志全部输出到 run.log 文件里,想看日志直接打开文件

停止服务(关键)

Windows 没有 grep,用这条命令找到 Java 进程并关闭:

  1. # 查找占用端口的进程(比如8080)
  2. netstat -ano | findstr "8080"
  3. # 最后一列数字是 PID,强制结束进程
  4. taskkill /F /PID 这里填查到的数字

方案2:写一键启动脚本(双击直接运行,懒人必备)

  1. 在 jar 同目录新建文本文档,重命名为 start.bat(后缀必须改成 .bat
  2. 右键编辑,写入下面代码:
    1. @echo off
    2. echo 正在启动 yudao 服务...
    3. java -Xms256m -Xmx512m -jar yudao.jar
    4. pause
  3. 保存后双击 start.bat 直接启动,关闭窗口就停止服务。

后台无窗口版脚本 start_silent.bat

  1. @echo off
  2. echo 后台启动服务,日志输出 run.log
  3. start /b java -Xms256m -Xmx512m -jar yudao.jar > run.log 2>&1
  4. echo 启动完成,关闭此窗口即可
  5. pause

方案3:注册 Windows 系统服务(开机自启,完全后台,生产级本地部署)

使用工具 nssm 把 jar 做成系统服务,开机自动启动、无黑窗口、异常自动重启

  1. 下载 NSSM:解压后根据系统位数选择 win64 文件夹
  2. 管理员身份打开 cmd,进入 nssm 目录
  3. 安装服务命令:
    1. nssm install YudaoService
  4. 弹出配置窗口:
    • Path:选择你的 java.exe 路径(如 C:\Program Files\Java\jdk-17\bin\java.exe
    • Arguments:填写 -Xms256m -Xmx512m -jar D:\project\jar\yudao.jar
  5. 点击 OK,服务创建完成

    服务管理命令(管理员CMD)

    1. # 启动服务
    2. nssm start YudaoService
    3. # 停止服务
    4. nssm stop YudaoService
    5. # 卸载服务
    6. nssm remove YudaoService

三、常见 Windows11 踩坑解决

  1. 提示java不是内部命令 JDK 未配置环境变量,重新安装 JDK 并配置 JAVA_HOME、Path。

  2. 端口被占用无法启动

    1. # 查询8080端口PID
    2. netstat -ano | findstr "8080"
    3. # 强制杀死进程
    4. taskkill /F /PID 进程数字
  3. 双击bat一闪而过 脚本末尾加 pause,运行失败会保留窗口,查看报错信息。

  4. 防火墙拦截,其他设备访问不了 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