VS Code 调试 Spring Boot 项目需配置 JDK 17+、Extension Pack for Java 和 Spring Boot Extension Pack,通过 Spring Initializr 创建项目并生成 launch.json,确保 mainClass 全限定名正确、mvn compile 已执行且 pom.xml 含 debug 和 devtools 配置。

VS Code 本身不内置 Java 运行时或 Spring Boot 支持,必须手动配置扩展、JDK 和构建工具才能调试——直接开项目会报 Cannot resolve symbol 'SpringBootApplication' 或启动时无任何响应。
安装必要扩展与 JDK
缺一不可,且版本需匹配:Spring Boot 3.x 要求 JDK 17+,而 VS Code 的 Extension Pack for Java 依赖 Language Support for Java 和 Debugger for Java 才能识别断点和变量。
- 在扩展市场搜索并安装:
Extension Pack for Java(官方推荐,含全部基础组件) - 单独确认已安装:
Spring Boot Extension Pack(提供Spring Initializr图形化创建、@Autowired提示、application.properties高亮) - JDK 必须通过系统 PATH 可达,运行
java -version和javac -version输出一致;VS Code 设置中指定java.home路径(如/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home或C:\Program Files\Java\jdk-17)
用 Spring Initializr 创建可调试项目
不要手动建空文件夹再补 pom.xml——VS Code 的 Spring Initializr 扩展能自动生成带正确 parent、plugin 和 starter 的工程,避免因 Maven 插件缺失导致 spring-boot:run 不触发内嵌 Tomcat。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Spring Initializr: Generate a Maven Project - 选择 Spring Boot 版本(建议 3.2.x)、Java 版本(必须 ≥17)、添加
Spring Web和Lombok(可选)等依赖 - 生成后等待右下角提示
Importing Maven project...完成,此时src/main/java下的@SpringBootApplication类才会有绿色启动箭头
配置 launch.json 启动调试
默认没有 .vscode/launch.json,不配就只能用终端跑 mvn spring-boot:run,无法设断点、看变量、步进执行。
立即学习“Java免费学习笔记(深入)”;
- 打开项目根目录下的
MainApplication.java(含@SpringBootApplication的类) - 点击右上角绿色三角形 →
Debug→ VS Code 会自动生成.vscode/launch.json,内容应包含type: "java"、request: "launch"、mainClass指向你的启动类全限定名 - 关键检查项:
projectName必须与pom.xml中的一致;若改过模块名,需手动同步projectName字段,否则调试器找不到 classpath - 启动前确保 Maven 已编译:终端执行
mvn compile,否则断点显示为空心圆(unbound breakpoint)
常见调试失败原因
断点不生效、控制台无日志、端口被占却没提示——这些问题几乎都源于 classpath 或生命周期错位。
-
Breakpoint ignored because no associated source code is available:源码未编译或target/classes路径未被调试器识别,删掉target文件夹后重跑mvn compile - 启动后浏览器访问
http://localhost:8080显示 404:检查application.properties是否误写为application.yml但没装 YAML 插件,或@RestController类没加@RequestMapping - 修改代码后热更新无效:VS Code 默认不开启 Spring DevTools 热部署,需在
pom.xml中添加spring-boot-devtools依赖,并在设置中启用java.autobuild.enabled - 调试时变量显示
:JDK 编译参数未包含调试信息,确认pom.xml的maven-compiler-plugin有true
真正卡住的往往不是“怎么配”,而是 JDK 路径指向 JRE、Maven 本地仓库损坏、或者 launch.json 里 mainClass 写了类名没写包名——这些细节不会报红,但会让整个调试链路静默失效。










