绝大多数情况不是jdk没装好,而是idea未正确注册、指定或校验jdk:需先通过java/javac -version验证安装完整性,再在sdks中手动添加jdk根目录,最后在project和modules中分别指定并检查一致性。

IDEA 配置不上 JDK,绝大多数情况不是 JDK 没装好,而是 IDEA 没“认出”或没“用对”它。关键在三层配置是否打通:先注册、再指定、最后校验一致性。
确认 JDK 真的装对了
别只信安装程序点完了——IDEA 不读安装记录,只认真实路径和完整内容。
- 打开终端(cmd / Terminal),分别运行:
java -version 和 javac -version;两个命令都必须成功返回版本号(如 17.0.1 或 21.0.2),缺一个就说明装的是 JRE 而非 JDK - 检查安装目录:JDK 根目录下必须有 bin(含 javac.exe)、jre(旧版)或 conf(新版)、lib 等文件夹;若只有
jre文件夹而无bin/javac,那就是选错了路径 - Windows 用户特别注意:删掉 Path 中那些
C:\Program Files\Common Files\Oracle\Java\javapath类似路径,它们常指向失效快捷方式,会干扰真实 JDK 识别
在 IDEA 中正确注册并启用 JDK
IDEA 不自动扫描系统 JDK,必须手动“入库+指派”两步走。
- 启动 IDEA(无需打开项目),点击右下角 Configure → Project Defaults → Project Structure
- 左侧选 SDKs → 点 + → Add JDK… → 浏览到 JDK 根目录(例如:
C:\Program Files\Java\jdk-21.0.2或/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home)→ 确认 - 回到 Project Settings → Project → 在 Project SDK 下拉框中,选择刚才添加的那个 JDK(不是 JRE,不是 jdk-21.jdk 的上层文件夹,是带
Contents/Home的那个) - Language level 建议设为与 JDK 主版本一致(如 JDK 21 就选 21)
检查模块级是否被覆盖或遗漏
即使 Project SDK 设对了,单个模块也可能被单独设置成 None 或旧版本,导致代码爆红、Cannot resolve symbol 'String'。
- 仍在此窗口(Project Structure),左侧选 Modules → 展开你的模块名 → 切到 Dependencies 标签页
- 看 Module SDK 是否为 Project SDK(推荐)或明确选择了同一 JDK;如果显示 None,下拉选中已注册的 JDK
- 顺便检查 Sources 标签页:确保
src/main/java被标记为 Sources Root(蓝色图标),否则 IDEA 不当它是 Java 代码目录
留意构建工具带来的版本冲突
Maven/Gradle 有自己的 Java 版本声明,它和 IDEA 配置不一致时,编译器会打架。
- 打开
pom.xml,检查是否有类似:<properties><java.version>17</java.version></properties>
这个值必须 ≤ IDEA 中设置的 JDK 主版本(比如用了 JDK 21,java.version写 17 没问题,写 25 就报错) - Gradle 项目则查
build.gradle中的java { sourceCompatibility = JavaVersion.VERSION_17 } - 改完后点 IDEA 右上角 Maven/Gradle 工具栏的 Reload project,不要只刷新代码
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











