Windows 下 Java 安装、环境变量与多版本配置完整指南
本文基于 Oracle 官方文档,系统讲解了 Windows 下 Java(JDK)安装、JAVA_HOME/PATH/CLASSPATH 环境变量配置、多版本 JDK 管理及常见问题排查的完整实践方案。
Windows 下 Java 安装、环境变量与多版本配置完整指南
适用平台:Windows 10 / Windows 11 / Windows Server
适用版本:JDK 8 / 11 / 17 / 21+
依据:Oracle 官方 JDK 安装文档、Java 官方环境变量说明
推荐:优先使用 LTS 版本(JDK 17 / JDK 21)
一、Java、JDK、JRE、JVM 介绍
1. JVM(Java Virtual Machine)#
JVM 是 Java 虚拟机,用于运行 Java 字节码。
作用:
- 运行
.class - 提供跨平台能力
- 不同系统有不同 JVM 实现
2. JRE(Java Runtime Environment)#
JRE 是 Java 运行环境。
包含:
- JVM
- Java 标准类库
作用:
- 运行 Java 程序
- 不能编译 Java
3. JDK(Java Development Kit)#
JDK 是 Java 开发工具包。
包含:
- JRE
- javac
- java
- jar
- javadoc
开发 Java 必须安装 JDK。
二、JDK 版本选择建议
| 场景 | 推荐版本 |
|---|---|
| 老项目 | JDK8 |
| Spring Boot 2.x | JDK8 / 11 |
| Spring Boot 3.x | JDK17+ |
| 新项目 | JDK17 / 21 |
推荐:
textJDK 17
或者:
textJDK 21
三、官方下载地址
Oracle:
https://www.oracle.com/java/technologies/downloads/
OpenJDK:
Temurin:
四、Windows 安装 JDK
1. 下载#
下载:
textWindows x64 Installer
例如:
textOpenJDK21U-jdk_x64_windows_hotspot_21.exe
2. 安装路径建议#
推荐:
textC:\Program Files\Java\
例如:
textC:\Program Files\Java\jdk-21
避免:
- 中文路径
- 特殊字符路径
3. 验证安装#
CMD:
cmdjava -version javac -version
五、JAVA_HOME 配置
1. JAVA_HOME 是什么#
JAVA_HOME:
JDK 安装根目录。
正确:
textC:\Program Files\Java\jdk-21
错误:
textC:\Program Files\Java\jdk-21\bin
官方文档同样要求 JAVA_HOME 指向 JDK 根目录。 citeturn0search1turn0search6
2. 配置方式#
打开:
text此电脑 → 属性 → 高级系统设置 → 环境变量
新增:
变量名:
textJAVA_HOME
变量值:
textC:\Program Files\Java\jdk-21
六、PATH 配置
1. PATH 是什么#
PATH:
Windows 命令搜索路径。
如果 PATH 中包含:
text%JAVA_HOME%\bin
则可以在任意目录执行:
cmdjava javac
2. PATH 配置#
找到系统变量:
textPath
新增:
text%JAVA_HOME%\bin
3. 为什么有时必须写 bin#
你提到:
textJAVA_HOME=C:\jdk\bin
才可以运行。
这通常是:
- PATH 未正确引用
%JAVA_HOME%\bin - 多版本冲突
- javapath 优先级问题
正确做法:
textJAVA_HOME=C:\jdk PATH=%JAVA_HOME%\bin;%PATH%
而不是:
textJAVA_HOME=C:\jdk\bin
七、CLASSPATH 配置详解
1. CLASSPATH 是什么#
CLASSPATH:
Java 类搜索路径。
用于:
- 查找
.class - 查找
.jar
2. Oracle 官方建议#
Oracle 官方文档说明:
推荐使用
-cp或-classpath参数,而不是全局 CLASSPATH。 citeturn0search2
例如:
cmdjava -cp app.jar Main
3. 老式写法#
历史常见:
textCLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
4. tools.jar 为什么不推荐#
JDK9+:
- Java 模块化
- tools.jar 已移除
因此:
text%JAVA_HOME%\lib\tools.jar
在现代 JDK 已不存在。
5. 现代推荐#
现代 Java:
通常:
text不要配置全局 CLASSPATH
使用:
- Maven
- Gradle
- IDE
-cp
八、验证环境变量
查看 JAVA_HOME#
cmdecho %JAVA_HOME%
查看 PATH#
cmdecho %PATH%
查看 java 实际路径#
cmdwhere java
九、Windows javapath 机制
JDK15+:
安装器会自动添加:
textC:\Program Files\Common Files\Oracle\Java\javapath
到 PATH。
可能导致:
cmdjava -version
与:
cmdecho %JAVA_HOME%
不一致。
十、多版本 JDK 配置
推荐目录结构#
textC:\Program Files\Java\ ├─ jdk1.8.0_401 ├─ jdk-11 ├─ jdk-17 ├─ jdk-21
通过 JAVA_HOME 切换#
例如:
textJAVA_HOME=C:\Program Files\Java\jdk-17
PATH:
text%JAVA_HOME%\bin
十一、批处理快速切换 JDK
JDK8#
bat@echo off set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_401 set PATH=%JAVA_HOME%\bin;%PATH% java -version
JDK17#
bat@echo off set JAVA_HOME=C:\Program Files\Java\jdk-17 set PATH=%JAVA_HOME%\bin;%PATH% java -version
十二、Eclipse / IDEA 位数问题
必须:
textJDK 与 IDE 位数一致
例如:
| JDK | IDE |
|---|---|
| x64 | x64 |
| x86 | x86 |
否则可能:
- JVM 加载失败
- IDE 无法启动
十三、卸载 JDK 注意事项
不要直接删除目录。
推荐:
text控制面板 → 程序和功能 → 卸载
避免:
- 注册表残留
- javapath 残留
- PATH 残留
十四、CMD 与 PowerShell
CMD:
cmdjava -version
PowerShell:
powershelljava -version
查看 JAVA_HOME:
powershellecho $env:JAVA_HOME
十五、常见问题
1. java 不是内部命令#
原因:
- PATH 未配置
- CMD 未重启
2. javac 找不到#
说明:
- 只安装了 JRE
- PATH 未指向 JDK bin
3. java -version 与 JAVA_HOME 不一致#
原因:
textjavapath 优先级更高
查看:
cmdwhere java
4. CLASSPATH 导致各种问题#
Oracle 官方也强调:
全局 CLASSPATH 应谨慎使用。 citeturn0search2
现代项目:
通常不配置全局 CLASSPATH。
十六、现代 Java 推荐实践
推荐:
✅ 配置:
textJAVA_HOME PATH
❌ 不推荐:
text全局 CLASSPATH
十七、官方文档依据
本文整理参考:
- Oracle JDK Windows 安装文档 citeturn0search7turn0search1turn0search9
- Oracle PATH 与 CLASSPATH 文档 citeturn0search2
- Oracle JAVA_HOME 配置文档 citeturn0search6turn0search0turn0search14
- Oracle JDK 11+ javapath 文档 citeturn0search11turn0search13
十八、最终推荐配置
系统变量:
textJAVA_HOME=C:\Program Files\Java\jdk-21
PATH 新增:
text%JAVA_HOME%\bin
不配置:
textCLASSPATH
验证:
cmdjava -version javac -version echo %JAVA_HOME%
如果全部正常:
✅ Java 环境配置成功