IntelliJ IDEA 必须手动配置 JDK 才能正常开发,仅装 JRE 会导致编译失败、符号无法解析;需验证 javac -version、正确设置 JAVA_HOME,并在 Project Structure 中指定 Project SDK 为 JDK 而非 JBR 或 JRE。

IntelliJ IDEA 本身不自带 Java 运行环境,必须手动配置符合要求的 JDK 才能正常编译、运行和调试项目。没配好 JDK,新建项目会报 Cannot resolve symbol 'java.lang.Object',Maven 导入失败,甚至连新建 .java 文件都标红。
确认系统已安装 JDK 而非 JRE
很多人装了“Java”,但实际只装了 JRE(Java Runtime Environment),它只能运行字节码,不能编译源码。IDEA 需要的是 JDK(Java Development Kit),含 javac、javadoc、jdk.jshell 等开发工具。
- 在终端执行
javac -version,有输出说明 JDK 已安装;若提示命令未找到,大概率只有 JRE - Windows 用户检查安装路径是否含
jdk-(如C:\Program Files\Java\jdk-17.0.2),而非jre1.8.0_351 -
macOS 用户推荐用
brew install openjdk@17,避免 Oracle JDK 的许可和更新问题 - Linux 用户注意区分
openjdk-17-jdk(含开发工具)和openjdk-17-jre(仅运行时)
验证 JAVA_HOME 是否正确设置
虽然 IDEA 可以独立指定 JDK 路径,但很多插件(如 Maven、Gradle、Spring Boot DevTools)依赖 JAVA_HOME 环境变量。设错会导致构建成功但运行时报 UnsupportedClassVersionError。
- 执行
echo $JAVA_HOME(macOS/Linux)或echo %JAVA_HOME%(Windows),输出应为 JDK 根目录,不是bin子目录 -
$JAVA_HOME/bin/java -version和$JAVA_HOME/bin/javac -version输出版本号必须一致 - Windows 用户避免路径含空格(如
C:\Program Files\...),建议改用短路径或重装到C:\jdk17 - macOS 使用 Homebrew 安装后,
JAVA_HOME应设为/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home(ARM)或/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home(Intel)
IDEA 中如何绑定 JDK(Project SDK)
即使系统级 JDK 没问题,IDEA 仍可能默认使用内置的 JBR(JetBrains Runtime),它仅用于启动 IDE,不能编译 Java 项目。
立即学习“Java免费学习笔记(深入)”;
- 首次启动 IDEA 后,新建项目前先打开 File → Project Structure → Project,在
Project SDK下拉框中选择已安装的 JDK(如17 (17.0.2)) - 若下拉列表为空,点
New... → JDK,手动定位到 JDK 安装根目录(选中含lib、bin、src.zip的文件夹) - 不要选
JBR-17或类似选项——那是 JetBrains 自研的运行时,不支持javac编译 - 新建 Maven/Gradle 项目时,IDEA 会自动读取
pom.xml或build.gradle中的java.version,但前提是 Project SDK 已提前配好,否则模块 SDK 会继承为none
常见冲突场景与绕过方式
多 JDK 共存是常态,但 IDEA 对版本敏感:JDK 17 编译的类无法在 JDK 11 上运行,而 Kotlin 插件、Lombok、某些 Spring Boot 版本对 JDK 小版本也有硬性要求。
- 项目级覆盖:在 File → Project Structure → Modules 中,为每个模块单独设置
Language level(如SDK default或17-LTS),该设置优先于 Project SDK 的语言特性限制 - Maven 项目需同步
source和target:org.apache.maven.plugins maven-compiler-plugin 3.11.0 17 17 - 遇到
Annotation processor not found(如 Lombok),检查是否勾选了 Settings → Build → Compiler → Annotation Processors → Enable annotation processing,且模块 SDK 是 JDK 不是 JRE - Mac M1/M2 用户若看到
Could not find tools.jar,说明误选了 JRE 或旧版 JDK;OpenJDK 17+ 已移除tools.jar,此错误纯属路径指向错误
最易被忽略的一点:IDEA 的 Project SDK 和 Project language level 是两个独立开关。前者决定用哪个 javac 编译,后者决定允许使用的语法糖(比如 var、switch 表达式)。两者不一致时,编辑器会高亮报错,但编译可能通过——这种静默不一致,往往拖到上线才暴露。










