IDEA下载JDK很慢或卡住怎么办?本文介绍 IntelliJ IDEA 手动配置本地JDK的方法,包括Add JDK from disk、Project SDK、Module SDK、Maven Runner JRE、Gradle JVM配置,以及常见JDK报错解决。
最后更新:2026-05-20
适用软件:IntelliJ IDEA Community / Ultimate
适用系统:Windows / macOS / Linux
适用场景:IDEA 下载 JDK 卡住、Download JDK 很慢、Add JDK from disk 不知道选哪个目录、Project SDK 配置错误、Maven / Gradle 使用了错误 JDK
很多 Java 开发者第一次打开 IntelliJ IDEA 创建项目时,都会遇到一个问题:
IDEA 提示需要下载 JDK,但下载速度很慢,甚至一直卡住。
或者项目已经打开了,但运行时提示:
Project SDK is not defined
No JDK specified
Cannot start compilation: the output path is not specified
Unsupported class file major version 65
java: invalid source release: 17
这些问题大多不是代码错误,而是 IDEA 里的 JDK 没有配置好。
本文整理 IDEA 中配置 JDK 的完整方法,包括:
IDEA 下载 JDK 很慢怎么办
如何手动配置本地 JDK
Project SDK 和 Module SDK 有什么区别
Maven Runner JRE 怎么配置
Gradle JVM 怎么配置
IDEA 里为什么还是旧 JDK
Windows / macOS / Linux 应该选择哪个 JDK 目录
如果你还没有下载 JDK,可以先看这篇:
各版本JDK镜像下载地址:JDK8 / JDK11 / JDK17 / JDK21 / JDK25 / JDK26 下载与IDEA配置指南
一、先说结论:IDEA下载JDK慢,最稳的办法是手动配置本地JDK
如果 IDEA 的 Download JDK 下载很慢,不要一直等。
推荐做法是:
1. 从国内 JDK 镜像站手动下载 JDK
2. 解压或安装到固定目录
3. 在 IDEA 中选择 Add JDK from disk
4. 指向 JDK 根目录
5. 设置 Project SDK、Module SDK、Maven Runner JRE、Gradle JVM
常见目录示例:
Windows:
D:\Java\jdk-17
D:\Java\jdk-21
macOS:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
Linux:
/opt/jdk/jdk-17
/usr/lib/jvm/java-17-openjdk
/usr/lib/jvm/java-21-openjdk
注意:IDEA 中选择的是 JDK 根目录,不是 bin 目录。
正确:
D:\Java\jdk-17
错误:
D:\Java\jdk-17\bin
二、IDEA里的Download JDK和Add JDK from disk有什么区别?
在 IDEA 中配置 JDK,常见有两种方式:
Download JDK
Add JDK from disk
区别如下:
| 方式 | 含义 | 适合场景 |
|---|---|---|
| Download JDK | IDEA 直接帮你下载 JDK | 网络好、无需指定镜像 |
| Add JDK from disk | 使用本机已经安装或解压好的 JDK | 国内下载慢、公司统一 JDK、手动下载镜像 |
| Detected SDKs | IDEA 自动识别本机已有 JDK | 本机已经安装 JDK |
| Project SDK | 当前项目默认使用的 JDK | 项目级配置 |
| Module SDK | 某个模块单独使用的 JDK | 多模块项目、老模块兼容 |
JetBrains 官方文档也说明:如果 IDEA 找不到需要的 JDK,可以选择 Add JDK from disk 并指定 JDK home directory;如果本机没有 JDK,可以选择 Download JDK,再指定供应商、版本和安装路径。([JetBrains][1])
所以在国内网络环境下,推荐:
优先手动下载 JDK
然后 Add JDK from disk
这样最稳定,也最容易和团队保持一致。
三、IDEA中手动配置本地JDK步骤
1. 打开Project Structure
在 IDEA 中打开项目后,进入:
File > Project Structure
快捷键:
Windows / Linux:
Ctrl + Alt + Shift + S
macOS:
Command + ;
然后进入:
Project Settings > Project
2. 设置Project SDK
找到:
Project SDK
如果已经识别到 JDK,可以直接选择。
如果没有,点击:
Add SDK > JDK
或者:
Add JDK from disk
然后选择 JDK 根目录。
Windows 示例:
D:\Java\jdk-17
macOS 示例:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Linux 示例:
/opt/jdk/jdk-17
选择完成后,IDEA 会自动识别:
Name
Version
Vendor
Classpath
Sourcepath
如果 IDEA 无法识别,通常说明你选错了目录。
3. 设置Project language level
在同一个页面中,还要检查:
Project language level
常见对应关系:
| JDK版本 | language level 建议 |
|---|---|
| JDK8 | 8 |
| JDK11 | 11 |
| JDK17 | 17 |
| JDK21 | 21 |
| JDK25 | 25 |
如果你的项目使用 JDK17,就不要把 language level 设成 8。
如果你的项目使用 JDK21,也不要只改 Project SDK,却忘了改 language level。
四、Module SDK也要检查
很多人只改了 Project SDK,但项目还是报错。原因可能是 Module SDK 还是旧版本。
进入:
File > Project Structure > Modules > Dependencies
找到:
Module SDK
建议选择:
Project SDK
这样模块会跟随项目 JDK。
如果是多模块项目,也可以给不同模块指定不同 JDK。例如:
main模块:JDK17
legacy模块:JDK8
new-feature模块:JDK21
但普通项目不建议搞得太复杂。大多数情况下,所有模块统一使用 Project SDK 就够了。
JetBrains 官方文档也区分了 Project SDK 和 Module SDK,并支持在模块级别单独选择或继承 Project SDK。([JetBrains][1])
五、Maven项目还要检查Maven Runner JRE
如果你的项目是 Maven 项目,只配置 Project SDK 还不够。
还要检查 Maven 运行时使用的 JDK。
进入:
File > Settings > Build, Execution, Deployment > Build Tools > Maven > Runner
macOS 是:
IntelliJ IDEA > Settings > Build, Execution, Deployment > Build Tools > Maven > Runner
找到:
JRE
推荐选择:
Project JDK
或者直接选择项目需要的 JDK,例如:
JDK17
JDK21
JetBrains 的 Maven Runner 文档中也有独立的 JRE 配置项,用来选择运行 Maven goals 的 JRE。([JetBrains][2])
六、Maven项目建议在pom.xml里明确JDK版本
IDEA 里配置 JDK 是一回事,项目自身的 Maven 编译配置是另一回事。
如果项目使用 JDK17,建议在 pom.xml 中写:
<properties>
<maven.compiler.release>17</maven.compiler.release>
</properties>
如果项目使用 JDK21:
<properties>
<maven.compiler.release>21</maven.compiler.release>
</properties>
老项目可能会这样写:
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
或者:
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
但如果是 JDK9 以上项目,更推荐使用:
<maven.compiler.release>
这样更能避免“编译版本看起来对,但实际误用了更高版本 API”的问题。
七、Gradle项目还要检查Gradle JVM
如果你的项目是 Gradle 项目,IDEA 里的 Gradle JVM 也要单独检查。
进入:
File > Settings > Build, Execution, Deployment > Build Tools > Gradle
macOS 是:
IntelliJ IDEA > Settings > Build, Execution, Deployment > Build Tools > Gradle
重点看:
Gradle JVM
推荐选择:
Project SDK
或者直接选择项目要求的 JDK:
JDK17
JDK21
Gradle 官方文档说明,Gradle JVM 影响的是 IDE 中运行 Gradle 的 JVM;如果构建脚本没有明确指定 Java Toolchain,IDE 中的 Gradle JVM 设置可能会影响构建行为。([Gradle 用户手册][3])
八、Gradle项目建议配置Java Toolchain
Gradle 项目更推荐使用 Java Toolchain 固定项目 JDK。
1. Groovy DSL:build.gradle
项目使用 JDK17:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
项目使用 JDK21:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
2. Kotlin DSL:build.gradle.kts
项目使用 JDK17:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
项目使用 JDK21:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
Gradle 官方文档给出的 Toolchain 示例也是通过 languageVersion = JavaLanguageVersion.of(17) 来指定项目使用的 Java 版本。([Gradle 用户手册][3])
这样做的好处是:
1. 项目要求更明确
2. 团队成员不容易用错 JDK
3. CI/CD 构建更稳定
4. 不依赖每个人电脑上的默认 JAVA_HOME
九、IDEA里为什么还是旧JDK?
这是最常见的问题之一。
你明明安装了 JDK17 或 JDK21,但 IDEA 里还是显示 JDK8,通常有以下原因:
1. Project SDK 没改
2. Module SDK 没改
3. Maven Runner JRE 没改
4. Gradle JVM 没改
5. pom.xml 或 build.gradle 里写死了旧版本
6. Run Configuration 使用了旧 JRE
7. IDEA 缓存没有刷新
8. 项目重新导入时又使用了默认 JDK
排查顺序:
1. File > Project Structure > Project > Project SDK
2. File > Project Structure > Modules > Dependencies > Module SDK
3. Settings > Build Tools > Maven > Runner > JRE
4. Settings > Build Tools > Gradle > Gradle JVM
5. Run > Edit Configurations > JRE
6. Maven / Gradle 重新 Reload
十、Run Configuration里的JRE也要检查
有时候 Project SDK 是对的,但运行某个 main 方法或 Spring Boot 项目时还是报错。
这时要检查运行配置:
Run > Edit Configurations
找到当前运行配置,检查:
JRE
建议选择:
Project SDK
或者选择项目需要的 JDK。
例如:
Spring Boot项目使用JDK17
Run Configuration里也应该使用JDK17
如果这里选了 JDK8,就可能出现:
UnsupportedClassVersionError
invalid source release
Unsupported class file major version
十一、不同系统应该选择哪个JDK目录?
1. Windows
如果你下载的是压缩包,推荐解压到:
D:\Java\jdk-17
D:\Java\jdk-21
IDEA 中选择:
D:\Java\jdk-17
不要选择:
D:\Java\jdk-17\bin
如果你是安装版 JDK,可能在:
C:\Program Files\Java\jdk-17
C:\Program Files\Eclipse Adoptium\jdk-17
2. macOS
macOS 常见目录:
/Library/Java/JavaVirtualMachines/
例如:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
注意,macOS 的 JDK 目录通常要选到:
Contents/Home
不是只选:
temurin-17.jdk
3. Linux
Linux 常见目录:
/usr/lib/jvm/
/opt/jdk/
例如:
/usr/lib/jvm/java-17-openjdk
/usr/lib/jvm/java-21-openjdk
/opt/jdk/jdk-17
/opt/jdk/jdk-21
可以用下面命令查看当前 Java 路径:
which java
readlink -f $(which java)
查看版本:
java -version
javac -version
十二、如何验证IDEA使用的是正确JDK?
1. 写一个简单Java类
public class JdkCheck {
public static void main(String[] args) {
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("java.home"));
System.out.println(System.getProperty("java.vendor"));
}
}
运行后看输出:
java.version
java.home
java.vendor
如果输出的版本和路径符合预期,说明运行配置使用的 JDK 是对的。
2. Maven项目验证
在 IDEA Terminal 中执行:
mvn -version
重点看:
Java version
Java home
如果这里显示的是 JDK8,而项目需要 JDK17,就说明 Maven 使用的 JDK 不对。
3. Gradle项目验证
Linux / macOS:
./gradlew --version
Windows:
gradlew.bat --version
重点看:
JVM
如果 JVM 显示的是旧版本,就去检查:
Gradle JVM
JAVA_HOME
gradle.properties
toolchain配置
十三、常见报错解决
1. Project SDK is not defined
含义:
当前项目没有配置 JDK
解决:
File > Project Structure > Project > Project SDK
选择已有 JDK,或者:
Add JDK from disk
2. Cannot start compilation: no JDK configured
含义:
IDEA 无法找到可用于编译的 JDK
解决:
1. 检查 Project SDK
2. 检查 Module SDK
3. 确认选择的是 JDK 根目录,不是 bin 目录
4. 确认不是只安装了 JRE
JetBrains 官方文档也说明,单独的 JRE 不适合应用开发,因为它缺少编译器和调试器等开发组件;开发 Java 应用需要独立 JDK。([JetBrains][1])
3. java: invalid source release: 17
含义:
项目要求使用 Java 17 编译,但当前编译器版本低于 17
常见场景:
pom.xml 写了 release 17
但 Maven Runner JRE 还是 JDK8 或 JDK11
解决:
1. Maven Runner JRE 改成 JDK17
2. Project SDK 改成 JDK17
3. JAVA_HOME 改成 JDK17
4. 重新 Reload Maven
4. Unsupported class file major version 65
含义:
major version 65 = Java 21
通常说明:
某个 class 文件是 JDK21 编译的
但当前运行或构建环境低于 JDK21
解决:
1. 升级 Project SDK 到 JDK21
2. Maven Runner JRE 改成 JDK21
3. Gradle JVM 改成 JDK21
4. 或者把项目编译目标降到 JDK17
更多版本对照可以看:
Java版本号与class文件major version对照表:Unsupported class file major version 52 / 55 / 61 / 65 / 69 / 70
5. No compiler is provided in this environment
常见报错:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
含义:
当前使用的是 JRE,不是 JDK
解决:
1. 安装 JDK,不要只装 JRE
2. IDEA 中选择 JDK 根目录
3. Maven Runner JRE 选择 JDK
4. JAVA_HOME 指向 JDK 目录
6. IDEA能运行,命令行不能运行
常见原因:
IDEA 使用的是 Project SDK
命令行使用的是系统 JAVA_HOME
两者不是同一个 JDK
排查:
java -version
javac -version
mvn -version
然后在 IDEA 中检查:
Project SDK
Maven Runner JRE
Gradle JVM
7. 命令行能运行,IDEA不能运行
常见原因:
命令行 JAVA_HOME 是对的
但 IDEA 的 Project SDK / Module SDK / Maven Runner / Gradle JVM 还是旧版本
解决:
1. 改 Project SDK
2. 改 Module SDK
3. 改 Maven Runner JRE
4. 改 Gradle JVM
5. Reload Maven / Gradle
6. 必要时重新导入项目
十四、团队开发建议
如果是团队项目,不建议每个人自己随便选 JDK。
建议统一:
1. JDK大版本
2. JDK发行版
3. JDK小版本
4. Maven / Gradle编译配置
5. IDEA项目配置说明
6. CI/CD构建环境
例如团队约定:
JDK版本:JDK17
发行版:Eclipse Temurin
Maven:3.9.x
Gradle:8.x
Spring Boot:3.x
然后在 README 中写清楚:
本项目使用 JDK17
IDEA Project SDK 请设置为 JDK17
Maven Runner JRE 请设置为 JDK17
Gradle JVM 请设置为 JDK17
如果项目是 Gradle,建议加 Toolchain:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
如果项目是 Maven,建议加:
<properties>
<maven.compiler.release>17</maven.compiler.release>
</properties>
这样可以减少很多“我这里能跑,你那里不能跑”的问题。
十五、FAQ
1. IDEA自带JDK吗?还需要自己安装JDK吗?
IDEA 自带的是用于运行 IDE 本身的运行时,不建议拿它当项目开发 JDK。JetBrains 官方文档也说明,IDE 自带 JRE 用来运行 IDE 本身,不足以开发 Java 应用,开发前应下载并安装独立 JDK。([JetBrains][1])
2. IDEA下载JDK很慢怎么办?
最稳的办法是:
1. 从国内 JDK 镜像站下载 JDK
2. 解压或安装到固定目录
3. IDEA 中 Add JDK from disk
4. 指向 JDK 根目录
不要一直卡在 Download JDK。
3. Add JDK from disk 应该选哪个目录?
选择 JDK 根目录。
Windows:
D:\Java\jdk-17
macOS:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Linux:
/opt/jdk/jdk-17
不要选择 bin 目录。
4. Project SDK 和 Module SDK 有什么区别?
简单理解:
Project SDK:整个项目默认使用的 JDK
Module SDK:某个模块单独使用的 JDK
普通项目建议:
Module SDK = Project SDK
只有多模块、老项目兼容、特殊模块时,才需要单独设置 Module SDK。
5. Maven项目为什么还要配置 Maven Runner JRE?
因为 IDEA 中运行 Maven goal 时,Maven 可以使用单独的 JRE/JDK。
即使 Project SDK 是 JDK17,Maven Runner JRE 也可能还是 JDK8。
所以 Maven 项目一定要检查:
Settings > Build Tools > Maven > Runner > JRE
6. Gradle项目为什么还要配置 Gradle JVM?
因为 Gradle JVM 是运行 Gradle 本身的 JVM。
即使 Project SDK 是 JDK17,Gradle JVM 也可能是 JDK8 或 JDK11。
所以 Gradle 项目一定要检查:
Settings > Build Tools > Gradle > Gradle JVM
7. IDEA里改了JDK,为什么项目还是报错?
按顺序检查:
Project SDK
Module SDK
Maven Runner JRE
Gradle JVM
Run Configuration JRE
pom.xml
build.gradle
JAVA_HOME
只改一个地方不一定够。
十六、最终检查清单
IDEA 配置 JDK 后,建议按这个清单检查一遍:
1. Project SDK 是否正确
2. Project language level 是否正确
3. Module SDK 是否继承 Project SDK
4. Maven Runner JRE 是否正确
5. Gradle JVM 是否正确
6. Run Configuration JRE 是否正确
7. pom.xml 是否设置 maven.compiler.release
8. build.gradle 是否设置 Java Toolchain
9. java -version 是否符合预期
10. mvn -version 或 ./gradlew --version 是否符合预期
如果这 10 项都没问题,大多数 IDEA JDK 配置错误都能解决。
十七、相关文章
如果你还没有下载 JDK,可以先看:
各版本JDK镜像下载地址:JDK8 / JDK11 / JDK17 / JDK21 / JDK25 / JDK26 下载与IDEA配置指南
如果 Maven 下载依赖很慢,可以看:
Maven国内镜像settings.xml配置大全:阿里云、腾讯云、华为云、清华源
如果 Gradle 下载插件或依赖很慢,可以看:
Gradle国内镜像配置教程:init.gradle、repositories与Wrapper加速完整指南
如果遇到 JDK 版本不兼容,可以看:
Java版本号与class文件major version对照表:Unsupported class file major version 52 / 55 / 61 / 65 / 69 / 70
更新记录
2026-05-20:
- 增加 IDEA 手动配置本地 JDK 步骤
- 增加 Project SDK、Module SDK、Maven Runner JRE、Gradle JVM 区别
- 增加 Windows / macOS / Linux JDK 目录选择说明
- 增加 Maven 和 Gradle 项目 JDK 配置示例
- 增加 IDEA 常见 JDK 报错解决办法
- 增加 Java major version、Maven镜像、Gradle镜像相关文章入口
IDEA下载JDK很慢怎么办?手动配置本地JDK完整教程
https://java.li/archives/idea-download-jdk-slow-add-jdk-from-disk
评论