VSCode运行Spring Boot需java.home、Spring Boot Tools和Maven三者严格对齐:java.home须手动指定JDK 17+根目录(非bin,无空格/中文/末尾反斜杠),Spring Boot Tools须由Red Hat发布并启用,项目必须打开含pom.xml的根目录且被识别为Spring Boot项目。

VSCode 能跑 Spring Boot,但不是装完插件点一下就成——关键在 java.home、Spring Boot Tools 和 Maven 构建环境三者对齐,缺一不可。配错一个,就会卡在“找不到主类”“断点不生效”“依赖红波浪线”上。
java.home 必须手动设为 JDK 根目录,不能靠系统变量
VSCode 的 Java 扩展不读 JAVA_HOME 或终端里的 export,只认配置项 java.home。即使 java -version 输出 17,VSCode 仍可能报 “Java Home not set”。
- 路径必须指向完整 JDK 根目录,例如:
C:\jdk-17(Windows)、/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home(macOS),不能是bin子目录,也不能带末尾反斜杠(C:\jdk-17\❌) - 路径含空格或中文(如
C:\Program Files\)易导致加载失败,建议重装到纯英文无空格路径(如C:\jdk-17) - 改完
settings.json后必须完全重启 VSCode 窗口(不是重载窗口),再看右下角状态栏是否显示 “Java 17” - macOS 用户若用 zsh,GUI 启动的 VSCode 可能根本没加载 shell 配置,此时仅靠显式配置
java.home才可靠
Spring Boot Tools 必须单独启用,且项目得被识别为 Spring Boot
很多人装了 “Spring Boot Extension Pack”,但真正提供 @ConfigurationProperties 补全、application.yml 高亮、Actuator 端点识别的是其中的 Spring Boot Tools 子模块——它由 Red Hat 维护,必须单独启用,且只在 Maven 项目被正确识别后才工作。
- 在扩展面板搜索
Spring Boot Tools,认准发布者是 Red Hat,安装后点击 Reload - 打开的必须是含
pom.xml的项目根目录,不是子文件夹,也不是单个.java文件 - 首次打开后等待右下角出现 “Spring Boot project detected”;没出现?说明项目未被识别,后续所有功能(包括右键 Run)都无效
- 若 Dashboard 不显示模块:点击左侧 Spring Boot 图标(小叶子)→ 右键空白区 →
Refresh Spring Boot Projects - 检查
pom.xml中是否含spring-boot-starter-web,且<scope>不是test(否则 IDE 不认为这是 Web 项目)
启动必须走 launch.json,别信右键 Run
图形化右键菜单看似方便,但传参能力弱、环境隔离差,且容易因 projectName 与 pom.xml 中不一致而静默失败。真要稳定运行、设断点、传参数,必须手写 .vscode/launch.json。
立即学习“Java免费学习笔记(深入)”;
-
mainClass必须写全限定名,如com.example.demo.DemoApplication,包名错一个字母就ClassNotFoundException -
args字段只放程序参数(如--server.port=8081),JVM 参数要用vmArgs(如"vmArgs": "-Xmx512m") -
projectName必须严格等于pom.xml中的<artifactId>,大小写敏感 -
cwd(工作目录)应设为${workspaceFolder},否则src/main/resources下的配置可能加载失败 - Spring Boot 启动类不是普通 Java 主类,它依赖
spring-boot-maven-plugin注入 classpath 和启动逻辑;直接右键Application.java运行会静默失败或报NoClassDefFoundError
Lombok 和 application.properties 容易被忽略的细节
这两处不出错时一切正常,一出错就难定位——因为表象和根源脱节。
- Lombok 默认不生效:确认
pom.xml有org.projectlombok:lombok(<scope>provided</scope>),然后在 VSCode 设置中开启Enable annotation processing,并在settings.json中补全java.configuration.runtimes指向同一 JDK -
application.properties不生效?90% 是路径或编码问题:文件必须放在src/main/resources/下(不是子目录),且不能带 BOM;Windows 复制过来的文件建议用 VSCode 右下角编码切换为 UTF-8(无 BOM) - 热部署失效常见原因:
java.autobuild.enabled关闭、spring-boot-devtools未引入、或resources目录未被 devtools 监控(检查spring.devtools.restart.additional-paths)
最复杂的点不在某一步骤多难,而在于三者对齐的时机和顺序:JDK 路径错了,后续所有扩展都白装;项目没被识别为 Spring Boot,Dashboard 和 launch.json 就失去上下文;launch.json 里 projectName 和 pom.xml 不一致,调试器连 classpath 都加载不全——这些坑往往不报错,只是功能静默失效。


















