能调试,但必须配对 launch.json 里的 mainClass 和 projectName 字段,且启动前手动执行 mvn compile;mainClass 必须为全限定名(如"com.example.demo.DemoApplication"),projectName 必须与 pom.xml 中的 完全一致(如"demo"),否则报 NoClassDefFoundError 或断点灰色不可用。

能调试,但必须配对 launch.json 里的两个字段,且启动前手动执行 mvn compile——VS Code 的 Java 调试器不自动编译,也不识别注解,只认 class 文件路径和 Maven 工程名。
launch.json 必须填对的两个字段
mainClass 和 projectName 是唯二决定调试能否启动的关键项,错一个就报 NoClassDefFoundError 或断点灰色不可用:
-
mainClass必须是全限定名,比如"com.example.demo.DemoApplication";包名、类名、大小写、点号缺一不可 -
projectName必须与pom.xml中的<artifactid></artifactid>完全一致(不是文件夹名,也不是<name></name>),例如<artifactid>demo</artifactid>→projectName: "demo" - 如果改过
pom.xml,务必同步更新launch.json,否则调试器加载不到 classpath
为什么点绿色三角形后没反应或瞬间退出
常见现象:控制台闪退、无日志、断点空心、SpringBootApplication 标红——根本原因不是插件没装,而是 classpath 不完整:
- VS Code 不会自动触发
mvn compile,target/classes不存在时,调试器连主类都找不到 - 验证方式:终端运行
mvn clean compile,然后检查target/classes/com/example/demo/DemoApplication.class是否存在 - 若用了 Lombok,确保
lombok.config在项目根目录,且mvn compile输出里没有cannot find symbol
调试前必须确认的环境链路
插件和 JDK 配错,会导致从代码补全到断点全部失效,而错误提示往往藏在状态栏或输出面板里:
-
java.home设置必须指向 JDK 17+(Spring Boot 3.x 强制要求),路径不能含空格或中文(Windows 尤其注意) - 扩展只装
Extension Pack for Java和Spring Boot Extension Pack即可,多装反而引发冲突 - Mac/Linux 用户常因 shell 配置未被 GUI 加载,导致 VS Code 找不到
java命令——即使终端里java -version正常,也得在 VS Code 设置里显式配置java.home
最易被忽略的是:launch.json 生成后没人检查 projectName,而它和 pom.xml 的 artifactId 同步是个纯手工活,改一次 pom 就得手动改一次 json。这不是设计缺陷,是 VS Code 的 Java 调试器定位机制决定的——它压根不解析 XML,只认字符串匹配。


















