最直接的方式是看IDE右下角状态栏——打开任意Java文件,右下角会显示“JDK 17”或“Java 11”这类标识。点击它就能跳转到SDK设置页,但要注意:这只是当前文件视图的快捷提示,不代表全局配置已生效。检查 Project Structure 中的项目级 JDK这是确认主版本的核心位置: 按 Ctrl+Alt+Shift+S(Mac 为 Cmd+Option+Shift+S)打开 Project Structure 左侧选 Project → 查看 Project SDK 下拉值,这就是项目默认 JDK 同时核对 Project language level,它应与 SDK 版本一致(如 JDK 17 对应 language level 17)确认模块级 SDK 是否覆盖项目设置单个模块可能被单独指定 JDK,优先级高于项目级: 在 Project Structure 中左侧选 Modules 展开你的模块(如 main 或项目名),切换到 Dependencies 标签页 查看 Module SDK 设置,若显示“Project SDK”则继承项目配置;若显示具体版本(如 “JDK 8”),说明该模块独立使用了旧版核对构建工具声明是否一致Maven 或 Gradle 的配置可能和 IDEA 设置不一致,运行时以构建工具为准: Maven 项目:打开 pom.xml,查找 <maven.compiler.source> 和 <maven.compiler.target>,它们决定编译

最直接的方式是看IDE右下角状态栏——打开任意Java文件,右下角会显示“JDK 17”或“Java 11”这类标识。点击它就能跳转到SDK设置页,但要注意:这只是当前文件视图的快捷提示,不代表全局配置已生效。
检查 Project Structure 中的项目级 JDK
这是确认主版本的核心位置:
- 按 Ctrl+Alt+Shift+S(Mac 为 Cmd+Option+Shift+S)打开 Project Structure
- 左侧选 Project → 查看 Project SDK 下拉值,这就是项目默认 JDK
- 同时核对 Project language level,它应与 SDK 版本一致(如 JDK 17 对应 language level 17)
确认模块级 SDK 是否覆盖项目设置
单个模块可能被单独指定 JDK,优先级高于项目级:
- 在 Project Structure 中左侧选 Modules
- 展开你的模块(如 main 或项目名),切换到 Dependencies 标签页
- 查看 Module SDK 设置,若显示“Project SDK”则继承项目配置;若显示具体版本(如 “JDK 8”),说明该模块独立使用了旧版
核对构建工具声明是否一致
Maven 或 Gradle 的配置可能和 IDEA 设置不一致,运行时以构建工具为准:
- Maven 项目:打开 pom.xml,查找
<maven.compiler.source>和<maven.compiler.target>,它们决定编译输出的字节码版本 - Gradle 项目:查看 build.gradle,检查
sourceCompatibility和targetCompatibility的值 - 注意:即使 IDEA 里设了 JDK 17,若 pom.xml 里写的是
<java.version>8</java.version>,打包仍按 Java 8 执行
验证编译器实际使用的 JDK
IDEA 自身编译行为由独立编译器设置控制:
- 进入 Settings / Preferences → Build, Execution, Deployment → Compiler → Java Compiler
- 查看 Project bytecode version 和 Target bytecode version,它们应与 project SDK 和构建工具配置匹配
- 如果不一致,可能导致编译通过但运行报错(如 UnsupportedClassVersionError)


















