IntelliJ IDEA、Eclipse、VS Code 中 JDK 路径需手动配置且四者(IDE SDK、构建路径、java.home、构建工具)必须一致,否则导致编译报错或运行时异常。
project structure 和 SDKs 两处设置IDEA 不会自动继承系统 JAVA_HOME 或 PATH 中的 JDK,必须手动指定。常见现象是:编译报错 Cannot resolve symbol 'List',或运行时提示 Unsupported class file major version——这说明项目用的 JDK 版本和代码语言级别不匹配。
File → Project Structure → Project:确认 Project SDK 已选中正确 JDK(如 17),且 Project language level 与之兼容(如 JDK 17 对应 17 (Preview) - Sealed types)File → Project Structure → Platform Settings → SDKs:这里要看到你添加的 JDK 根目录(如 /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home),不是 jre 子目录,也不能指向 bin 或 java 可执行文件+ → Add JDK,直接选中 JDK 安装根目录(macOS 是 Contents/Home,Windows 是解压后的顶层文件夹)Build path → Configure Build Path 里 JDK 选错会导致 Maven 编译通过但 IDE 报红Eclipse 的 Java 构建路径和 Maven 的 java.version 是两套逻辑。即使 pom.xml 设了 17,IDE 若仍用内置 JRE(如 jre-11),就会标红 var、sealed 等语法。
Properties → Java Build Path → Libraries:展开 JRE System Library,确认右侧显示的是你期望的 JDK(如 JavaSE-17),不是 jre11 或 Execution Environment
Alternate JRE 但路径不对,点 Edit… → Workspace default JRE 或手动 Add External JRE,指向完整 JDK 目录(非 jre/ 子目录)Preferences → Java → Installed JREs,确保列表中有你安装的 JDK,并勾选为默认java.home 配置,路径格式错误直接导致 Language Server 启动失败VS Code 的 Java 支持靠 redhat.java 扩展驱动,它需要明确知道 JDK 位置。配置错会导致“Loading Java Projects…” 卡住、无代码补全、跳转失效。
Cmd+, 或 Ctrl+,),搜索 java.home,设为 JDK 根路径(如 /opt/java/jdk-17.0.2)C:\\ProgramData\\chocolatey\\lib\\openjdk\\tools\\openjdk\\,末尾不要加 bin 或 java.exe
Cmd+Shift+P),运行 Java: Show Java Home,输出应为完整 JDK 根目录.vscode/settings.json 单独指定:{"java.home": "/path/to/jdk-17"}sourceCompatibility 与 IDE 的 JDK 设置不一致,会引发运行时异常IDE 只负责编辑和编译提示,真正打包和运行由构建工具控制。比如 IDEA 设了 JDK 17,但 pom.xml 中 maven-compiler-plugin 的 source 和 target 写成 11,代码里用了 switch expressions,IDE 不报错,但运行时可能抛 UnsupportedClassVersionError。
org.apache.maven.plugins maven-compiler-plugin3.11.0 17 17
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}Build project automatically,并勾选 Delegate IDE build/run actions to Maven/Gradle,让构建逻辑完全由工具链接管IDE 对 JDK 的识别不是“配一次就一劳永

SDKs、Build Path、java.home 和构建脚本四者是否指向同一套 JDK——漏掉任意一环,都可能让语法高亮正常但运行崩溃。