必须在File > Project Structure > Project中设置Project SDK为JDK根目录,同时确保Run Configuration、Maven/Gradle配置及系统JAVA_HOME与之统一,否则将导致编译运行异常或语法不识别。

找不到 JDK 或提示 “No JDK specified”
IDEA 启动项目时弹窗报错,或者新建项目后连 java 关键字都不高亮,大概率是根本没配 JDK。这不是“选个版本就行”的事——IDEA 里有两处独立配置:一个是 IDE 自身运行用的(Help > Edit Custom VM Options 无关),另一个才是你写代码、编译、运行真正依赖的。
- 必须在
File > Project Structure > Project里设置Project SDK,点New > JDK,然后选你本地解压好的 JDK 根目录(比如/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home或C:\Program Files\Java\jdk-21) - 别直接选
jre目录,也别选bin子目录;JDK 8+ 的路径里不能带空格或中文,否则 Gradle/Maven 构建可能静默失败 - 如果用了 SDKMAN 或 jEnv 管理多版本,记得选的是实际物理路径,不是软链——IDEA 不会自动解析符号链接
javac 版本和 java 运行版本不一致
写完代码能编译,但一运行就抛 java.lang.UnsupportedClassVersionError,说明编译用的 JDK 版本比运行时高。IDEA 默认用 Project SDK 编译,但运行配置(Run Configuration)可能另指了一个 JRE。
- 检查
Run > Edit Configurations > Templates > Application,确认JRE下拉框选的是和 Project SDK 一致的 JDK(不是 JRE) - 如果项目用了 Maven,还要看
pom.xml里的maven-compiler-plugin是否显式设了source和target;它们必须 ≤ Project SDK 版本,否则 IDEA 编译器和 Maven 会打架 - Gradle 项目同理,
sourceCompatibility和javaToolchain.version必须对齐 Project SDK
修改了 JDK 路径后,Maven 项目仍用旧版本编译
改完 Project SDK,新建类能用新语法(比如 record),但 mvn compile 报错说不支持——因为 Maven 默认用自己的 JAVA_HOME,完全无视 IDEA 设置。
- 在 IDEA 里打开
Settings > Build > Build Tools > Maven > Importing,把JDK for importer改成和 Project SDK 相同的 JDK - 同时检查终端里是否设置了
JAVA_HOME;如果设了,且指向旧 JDK,那你在 Terminal 标签页里执行mvn就还是走旧版 - IDEA 内置 Terminal 默认继承系统环境变量,如需覆盖,可在
Settings > Tools > Terminal里加启动命令,比如export JAVA_HOME=/path/to/new/jdk
为什么 java --version 显示正确,但 IDEA 里还是标红 System.out.println
这通常不是 JDK 没装好,而是 IDEA 没识别到标准库(rt.jar 或 modules-java.base)。常见于手动下载的 JDK 压缩包未完整解压,或误删了 lib 目录下的关键文件。
立即学习“Java免费学习笔记(深入)”;
- 进
Project Structure > SDKs,展开你配的 JDK,看Classpath里有没有rt.jar(JDK 8)或一堆modules/*.jar(JDK 9+);如果没有,说明路径选错了,或者 JDK 损坏 - Mac 用户特别注意:从官网下载的 .dmg 安装包会把 JDK 装进系统路径,但 IDEA 有时读不到
Contents/Home下的完整结构;建议优先用tar.gz版手动解压 - Windows 上如果用的是 OpenJDK 非官方构建(比如某些国产 JDK),部分缺少
src.zip或调试符号,会导致断点失效或跳转源码失败,但不影响编译运行
JAVA_HOME 和 IDEA 设置互相干扰——这三个点反复检查,基本就能过掉 90% 的新手环境问题。










