Windows怎么安装JDK并配置JAVA_HOME?本文介绍JDK8、JDK17、JDK21、JDK25在Windows 10/11下的安装方法,包含JAVA_HOME、Path配置、java -version验证、javac不是内部或外部命令、多个JDK版本切换、IDEA/Maven/Gradle配置检查。

最后更新:2026-05-26
适用系统:Windows 10 / Windows 11
适用场景:安装 JDK、配置 JAVA_HOME、配置 Path、解决 javac 不是内部或外部命令、切换多个 JDK 版本、IDEA / Maven / Gradle 使用错误 JDK

很多 Java 初学者或者刚接手老项目的开发者,第一步就卡在了 JDK 安装和环境变量配置上。

常见问题包括:

java 不是内部或外部命令
javac 不是内部或外部命令
JAVA_HOME 配置了但不生效
java -version 显示的不是刚安装的 JDK
IDEA 里还是旧 JDK
Maven 使用的 JDK 和命令行不一致
Gradle 使用的 JDK 和项目要求不一致

本文整理 Windows 系统下安装 JDK 和配置环境变量的完整步骤,包括 JDK8、JDK17、JDK21、JDK25 的选择建议,以及多个 JDK 共存时的切换方法。

如果你还没有下载 JDK,可以先看:

各版本JDK镜像下载地址:JDK8 / JDK11 / JDK17 / JDK21 / JDK25 / JDK26 下载与IDEA配置指南


一、先说结论:Windows安装JDK推荐这样做

普通开发者建议:

1. 下载 Eclipse Temurin JDK 或其他 OpenJDK 发行版
2. 安装或解压到固定目录
3. 配置 JAVA_HOME
4. 把 %JAVA_HOME%\bin 添加到 Path
5. 使用 java -version 和 javac -version 验证
6. 在 IDEA / Maven / Gradle 中确认 JDK 配置一致

推荐安装目录:

D:\Java\jdk-8
D:\Java\jdk-17
D:\Java\jdk-21
D:\Java\jdk-25

不太建议安装到路径复杂的位置,例如:

D:\我的开发工具\Java JDK 版本\jdk-17

原因是路径里包含中文、空格、特殊符号时,少数工具或脚本可能出现兼容问题。


二、Windows应该安装哪个JDK版本?

可以先参考下面这张表。

JDK版本适合场景是否推荐新项目
JDK 8老项目、传统企业项目、部分旧 Spring Boot 2 项目不建议新项目使用
JDK 11过渡期项目、部分存量微服务项目一般不作为新项目首选
JDK 17当前主流 Java 项目、Spring Boot 3 项目推荐
JDK 21新项目、云原生项目、虚拟线程相关项目推荐
JDK 25新一代 LTS,适合未来项目评估可以开始关注
JDK 26新特性版本,适合测试和尝鲜不建议普通生产项目直接使用

如果你不知道怎么选,可以按下面规则:

老项目:按项目要求使用 JDK8 或 JDK11
当前新项目:优先 JDK17 或 JDK21
长期维护新项目:可以评估 JDK25
学习新特性:可以使用 JDK26

如果你使用的是 Spring Boot 3,一般至少需要 JDK17。
如果你维护的是老项目,尤其是很多年前的企业项目,仍然可能要求 JDK8。


三、JDK下载方式推荐

1. 推荐普通开发者使用 Eclipse Temurin

Eclipse Temurin 是目前常见的 OpenJDK 发行版之一,适合大多数 Java 开发者。

适合:

Windows 本地开发
IDEA 开发 Java 项目
Maven / Gradle 构建
Spring Boot 项目
普通企业项目

推荐下载方式:

JDK 17 或 JDK 21
Windows
x64
Package Type: JDK

注意:开发 Java 项目请下载 JDK,不要只下载 JRE


2. Oracle JDK适合什么情况?

Oracle JDK 适合这些场景:

公司明确要求使用 Oracle JDK
生产环境历史上一直使用 Oracle JDK
项目文档指定 Oracle JDK
需要和已有环境保持一致

如果公司没有明确要求,普通开发环境使用 Temurin、Corretto、Dragonwell、Kona、毕昇 JDK 等 OpenJDK 发行版通常已经足够。

生产环境使用 Oracle JDK 时,要注意许可证和公司合规要求。


3. 安装包和压缩包怎么选?

常见下载形式有两种:

.msi 安装包
.zip 压缩包

区别如下:

类型优点缺点适合人群
.msi 安装包双击安装,步骤简单,可选择配置 PATH / JAVA_HOME安装路径和组件需要注意新手
.zip 压缩包绿色解压,方便多版本共存需要手动配置环境变量有经验的开发者

我的建议:

新手:使用 .msi 安装包
需要多个 JDK 共存:使用 .zip 压缩包
团队统一版本:推荐压缩包 + 固定目录

四、方式一:使用MSI安装包安装JDK

以 Eclipse Temurin 为例。

1. 下载 Windows x64 MSI 安装包

选择:

Operating System: Windows
Architecture: x64
Package Type: JDK
Version: 17 或 21
Installer: .msi

下载后双击安装。


2. 选择安装组件

安装过程中如果有自定义选项,建议开启:

Add to PATH
Set JAVA_HOME variable

有些安装包默认只添加 PATH,不一定自动设置 JAVA_HOME,所以安装时要看清楚。

如果你忘记勾选,也没关系,后面可以手动配置。


3. 安装目录建议

默认目录可能类似:

C:\Program Files\Eclipse Adoptium\jdk-17.x.x

也可以手动改成:

D:\Java\jdk-17

我更推荐统一放到:

D:\Java\

例如:

D:\Java\jdk-8
D:\Java\jdk-17
D:\Java\jdk-21
D:\Java\jdk-25

这样以后切换版本和排查问题更方便。


五、方式二:使用ZIP压缩包安装JDK

如果你下载的是 .zip 压缩包,可以按下面方式处理。

1. 解压JDK

假设下载的是 JDK17,解压到:

D:\Java\jdk-17

目录结构应该类似:

D:\Java\jdk-17
├── bin
├── conf
├── include
├── jmods
├── legal
├── lib
└── release

注意:JAVA_HOME 应该指向 JDK 根目录,不是 bin 目录。

正确:

D:\Java\jdk-17

错误:

D:\Java\jdk-17\bin

2. 多个JDK可以这样放

如果你经常维护不同项目,可以这样管理:

D:\Java\jdk-8
D:\Java\jdk-11
D:\Java\jdk-17
D:\Java\jdk-21
D:\Java\jdk-25

后面切换版本时,只需要修改:

JAVA_HOME

不需要改一堆地方。


六、配置JAVA_HOME环境变量

1. 打开环境变量设置

Windows 10 / Windows 11 可以这样打开:

此电脑 > 右键 > 属性 > 高级系统设置 > 环境变量

或者:

开始菜单搜索:环境变量
选择:编辑系统环境变量
点击:环境变量

2. 新建JAVA_HOME

在“系统变量”里点击:

新建

填写:

变量名:JAVA_HOME
变量值:D:\Java\jdk-17

如果你安装的是 JDK21,则填写:

变量名:JAVA_HOME
变量值:D:\Java\jdk-21

注意:

不要写成 D:\Java\jdk-17\bin
不要在路径最后多加分号
不要加引号

正确示例:

D:\Java\jdk-17

错误示例:

"D:\Java\jdk-17"
D:\Java\jdk-17\bin
D:\Java\jdk-17;

七、配置Path环境变量

1. 找到Path

在“系统变量”中找到:

Path

点击:

编辑

然后新增一行:

%JAVA_HOME%\bin

建议把它放到比较靠前的位置,尤其是在你电脑上安装过多个 JDK 的情况下。


2. 不推荐直接写死JDK路径

可以这样写:

%JAVA_HOME%\bin

不建议这样写:

D:\Java\jdk-17\bin

原因是:以后你从 JDK17 切换到 JDK21,只需要改 JAVA_HOME,不用再改 Path


3. 避免Path里有多个Java路径

很多人配置不生效,是因为 Path 里有多个 Java 路径,例如:

C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files\Java\jdk1.8.0_XXX\bin
D:\Java\jdk-17\bin
%JAVA_HOME%\bin

这时 Windows 会按 Path 的顺序查找 java.exe

如果前面已经有旧版本 Java,命令行就可能一直显示旧版本。

建议:

1. 保留 %JAVA_HOME%\bin
2. 删除或下移旧的 Java 路径
3. 确保 %JAVA_HOME%\bin 在旧 Java 路径前面

八、验证JDK是否安装成功

配置完成后,关闭所有已经打开的命令行窗口,重新打开一个新的 CMD 或 PowerShell。

1. 查看Java版本

java -version

正常输出类似:

openjdk version "17.0.x"

或者:

java version "21.0.x"

2. 查看javac版本

javac -version

正常输出类似:

javac 17.0.x

或者:

javac 21.0.x

如果 java -version 正常,但 javac -version 报错,通常说明:

1. 你安装的是 JRE,不是 JDK
2. JAVA_HOME 指错了目录
3. Path 没有配置 %JAVA_HOME%\bin
4. 命令行窗口没有重新打开

3. 查看JAVA_HOME

CMD:

echo %JAVA_HOME%

PowerShell:

echo $env:JAVA_HOME

输出应该类似:

D:\Java\jdk-17

如果输出为空,说明 JAVA_HOME 没有配置成功。


4. 查看java.exe实际路径

CMD:

where java

输出可能是:

D:\Java\jdk-17\bin\java.exe

如果你看到的是:

C:\Program Files\Common Files\Oracle\Java\javapath\java.exe

或者旧版本路径,就说明 Path 顺序可能有问题。


九、javac不是内部或外部命令怎么办?

如果执行:

javac -version

报错:

'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件

常见原因有 5 个。

1. 安装的是JRE,不是JDK

JRE 主要用于运行 Java 程序,JDK 才包含编译工具 javac

解决:

重新下载并安装 JDK

不要只装 JRE。


2. JAVA_HOME 指向了 bin 目录

错误:

JAVA_HOME=D:\Java\jdk-17\bin

正确:

JAVA_HOME=D:\Java\jdk-17

Path 中再添加:

%JAVA_HOME%\bin

3. Path没有添加%JAVA_HOME%\bin

检查 Path 是否包含:

%JAVA_HOME%\bin

没有的话新增一行。


4. 命令行窗口没有重开

环境变量修改后,已经打开的 CMD / PowerShell 不一定立即生效。

解决:

关闭所有命令行窗口
重新打开 CMD 或 PowerShell
再次执行 java -version 和 javac -version

5. Path里旧Java路径排在前面

执行:

where java

如果第一行不是你期望的 JDK 路径,就需要调整 Path 顺序。


十、java -version不是刚安装的JDK怎么办?

比如你安装了 JDK17,但执行:

java -version

却显示:

1.8.0_xxx

说明系统优先找到了旧版本 Java。

按这个顺序排查:

1. echo %JAVA_HOME%
2. where java
3. 检查 Path 顺序
4. 删除或下移旧 Java 路径
5. 重新打开命令行窗口

重点检查 Path 中是否有:

C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files\Java\jdk1.8.0_xxx\bin

如果这些路径排在 %JAVA_HOME%\bin 前面,就可能导致版本不对。


十一、Windows如何切换多个JDK版本?

如果你电脑上同时安装了多个 JDK:

D:\Java\jdk-8
D:\Java\jdk-17
D:\Java\jdk-21
D:\Java\jdk-25

推荐的切换方式是:

只修改 JAVA_HOME
Path 始终保留 %JAVA_HOME%\bin

例如当前使用 JDK17:

JAVA_HOME=D:\Java\jdk-17

要切换到 JDK21:

JAVA_HOME=D:\Java\jdk-21

然后重新打开命令行,验证:

java -version
javac -version

十二、使用命令行配置JAVA_HOME

如果你不想通过图形界面,也可以用命令配置。

1. 设置用户级JAVA_HOME

CMD:

setx JAVA_HOME "D:\Java\jdk-17"

设置完成后,重新打开命令行。


2. 设置系统级JAVA_HOME

需要以管理员身份打开 CMD:

setx /M JAVA_HOME "D:\Java\jdk-17"

注意:setx 设置后不会影响当前已经打开的命令行窗口,需要重新打开 CMD / PowerShell 才能生效。Microsoft 官方文档也说明,setx 用于创建或修改用户或系统环境变量。([Microsoft Learn][3])


3. 不建议随便用setx覆盖Path

有些教程会让你直接执行:

setx PATH "%JAVA_HOME%\bin;%PATH%"

不建议新手这样做。

原因是:

1. 容易把 Path 写乱
2. 容易重复添加 Java 路径
3. 旧系统或特殊情况下可能截断 Path
4. 不如图形界面直观

更稳妥的方法是:

通过系统环境变量界面手动添加 %JAVA_HOME%\bin

十三、IDEA中还要配置JDK

Windows 环境变量配置好了,不代表 IDEA 一定使用这个 JDK。

在 IntelliJ IDEA 中还要检查:

File > Project Structure > Project > Project SDK

以及:

File > Project Structure > Modules > Dependencies > Module SDK

如果是 Maven 项目,还要检查:

Settings > Build Tools > Maven > Runner > JRE

如果是 Gradle 项目,还要检查:

Settings > Build Tools > Gradle > Gradle JVM

如果 IDEA 中的 JDK 配置不对,可能出现:

Project SDK is not defined
java: invalid source release: 17
Unsupported class file major version 65
No compiler is provided in this environment

详细配置方法可以看:

IDEA下载JDK很慢怎么办?手动配置本地JDK完整教程


十四、Maven项目需要检查JDK版本

Maven 使用哪个 JDK,不一定完全取决于你以为的配置。

在命令行执行:

mvn -version

重点看:

Java version
Java home

如果项目需要 JDK17,但这里显示 JDK8,就要检查:

JAVA_HOME
Path
IDEA Maven Runner JRE

Maven 项目建议在 pom.xml 中明确指定编译版本。

JDK17 项目:

<properties>
    <maven.compiler.release>17</maven.compiler.release>
</properties>

JDK21 项目:

<properties>
    <maven.compiler.release>21</maven.compiler.release>
</properties>

如果 Maven 下载依赖很慢,可以看:

Maven国内镜像settings.xml配置大全:阿里云、腾讯云、华为云、清华源


十五、Gradle项目需要检查JDK版本

Gradle 项目执行:

gradlew.bat --version

或者:

./gradlew --version

重点看输出里的:

JVM

如果 JVM 版本不对,要检查:

JAVA_HOME
IDEA Gradle JVM
gradle.properties
Java Toolchain

Gradle 项目建议配置 Java Toolchain。

JDK17:

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

JDK21:

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(21)
    }
}

如果 Gradle 下载慢,可以看:

Gradle国内镜像配置教程:init.gradle、repositories与Wrapper加速完整指南


十六、常见报错解决

1. java不是内部或外部命令

原因:

Path 没有配置 Java 路径

解决:

1. 确认 JAVA_HOME 是否正确
2. 确认 Path 是否包含 %JAVA_HOME%\bin
3. 重新打开命令行
4. 执行 where java 检查路径

2. javac不是内部或外部命令

原因:

可能只安装了 JRE,或者 Path 没有配置 JDK 的 bin 目录

解决:

1. 安装 JDK
2. JAVA_HOME 指向 JDK 根目录
3. Path 添加 %JAVA_HOME%\bin
4. 重新打开命令行

3. java -version显示旧版本

原因:

Path 中旧 Java 路径排在前面

解决:

1. 执行 where java
2. 找到实际生效的 java.exe
3. 调整 Path 顺序
4. 确保 %JAVA_HOME%\bin 排在旧路径前面

4. invalid source release: 17

原因:

项目要求 Java 17 编译,但当前 JDK 版本低于 17

解决:

1. 安装 JDK17 或更高版本
2. JAVA_HOME 指向 JDK17
3. IDEA Maven Runner JRE 改成 JDK17
4. Gradle JVM 改成 JDK17
5. 重新导入项目

5. Unsupported class file major version 65

含义:

major version 65 = Java 21

通常说明:

某个 class 文件是 JDK21 编译的
但当前运行环境低于 JDK21

解决:

1. 升级运行 JDK 到 21 或更高
2. 或者降低项目编译版本

更多版本对照可以看:

Java版本号与class文件major version对照表:Unsupported class file major version 52 / 55 / 61 / 65 / 69 / 70


6. 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
2. JAVA_HOME 指向 JDK 根目录
3. Maven Runner JRE 选择 JDK
4. 不要只安装 JRE

十七、最终检查清单

Windows 安装 JDK 后,建议按下面清单检查:

1. JDK 是否安装或解压到固定目录
2. JAVA_HOME 是否指向 JDK 根目录
3. Path 是否包含 %JAVA_HOME%\bin
4. Path 中旧 Java 路径是否排在前面
5. java -version 是否正确
6. javac -version 是否正确
7. echo %JAVA_HOME% 是否正确
8. where java 是否指向预期目录
9. IDEA Project SDK 是否正确
10. Maven Runner JRE 是否正确
11. Gradle JVM 是否正确
12. pom.xml / build.gradle 是否指定了正确 Java 版本

如果这 12 项都检查过,大多数 Windows JDK 环境变量问题都能解决。


十八、推荐配置示例

假设你要使用 JDK17,推荐这样配置:

JDK目录:
D:\Java\jdk-17

JAVA_HOME:
D:\Java\jdk-17

Path新增:
%JAVA_HOME%\bin

验证命令:

java -version
javac -version
echo %JAVA_HOME%
where java

如果你要切换到 JDK21,只需要改:

JAVA_HOME=D:\Java\jdk-21

Path 仍然保持:

%JAVA_HOME%\bin

十九、相关文章

如果你还没有下载 JDK,可以先看:

各版本JDK镜像下载地址:JDK8 / JDK11 / JDK17 / JDK21 / JDK25 / JDK26 下载与IDEA配置指南

如果你在 IDEA 中不知道怎么配置 JDK,可以看:

IDEA下载JDK很慢怎么办?手动配置本地JDK完整教程

如果 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

完整环境配置可以查看:

Java开发环境配置专题:JDK、IDEA、Maven、Gradle、版本兼容与常见报错


更新记录

2026-05-26:
- 增加 Windows 安装 JDK 完整步骤
- 增加 JAVA_HOME 和 Path 配置方法
- 增加 JDK8 / JDK17 / JDK21 / JDK25 版本选择建议
- 增加 javac 不是内部或外部命令解决办法
- 增加 java -version 显示旧版本排查方法
- 增加 Windows 多 JDK 切换方法
- 增加 IDEA / Maven / Gradle JDK 配置检查项
- 增加 Java 环境配置专题内链