博客

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

推荐:

text
JDK 17

或者:

text
JDK 21

三、官方下载地址

Oracle:

https://www.oracle.com/java/technologies/downloads/

OpenJDK:

https://jdk.java.net/

Temurin:

https://adoptium.net/


四、Windows 安装 JDK

1. 下载#

下载:

text
Windows x64 Installer

例如:

text
OpenJDK21U-jdk_x64_windows_hotspot_21.exe

2. 安装路径建议#

推荐:

text
C:\Program Files\Java\

例如:

text
C:\Program Files\Java\jdk-21

避免:

  • 中文路径
  • 特殊字符路径

3. 验证安装#

CMD:

cmd
java -version javac -version

五、JAVA_HOME 配置

1. JAVA_HOME 是什么#

JAVA_HOME:

JDK 安装根目录。

正确:

text
C:\Program Files\Java\jdk-21

错误:

text
C:\Program Files\Java\jdk-21\bin

官方文档同样要求 JAVA_HOME 指向 JDK 根目录。 citeturn0search1turn0search6


2. 配置方式#

打开:

text
此电脑 → 属性 → 高级系统设置 → 环境变量

新增:

变量名:

text
JAVA_HOME

变量值:

text
C:\Program Files\Java\jdk-21

六、PATH 配置

1. PATH 是什么#

PATH:

Windows 命令搜索路径。

如果 PATH 中包含:

text
%JAVA_HOME%\bin

则可以在任意目录执行:

cmd
java javac

2. PATH 配置#

找到系统变量:

text
Path

新增:

text
%JAVA_HOME%\bin

3. 为什么有时必须写 bin#

你提到:

text
JAVA_HOME=C:\jdk\bin

才可以运行。

这通常是:

  • PATH 未正确引用 %JAVA_HOME%\bin
  • 多版本冲突
  • javapath 优先级问题

正确做法:

text
JAVA_HOME=C:\jdk PATH=%JAVA_HOME%\bin;%PATH%

而不是:

text
JAVA_HOME=C:\jdk\bin

七、CLASSPATH 配置详解

1. CLASSPATH 是什么#

CLASSPATH:

Java 类搜索路径。

用于:

  • 查找 .class
  • 查找 .jar

2. Oracle 官方建议#

Oracle 官方文档说明:

推荐使用 -cp 或 -classpath 参数,而不是全局 CLASSPATH。 citeturn0search2

例如:

cmd
java -cp app.jar Main

3. 老式写法#

历史常见:

text
CLASSPATH=.;%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#

cmd
echo %JAVA_HOME%

查看 PATH#

cmd
echo %PATH%

查看 java 实际路径#

cmd
where java

九、Windows javapath 机制

JDK15+:

安装器会自动添加:

text
C:\Program Files\Common Files\Oracle\Java\javapath

到 PATH。

可能导致:

cmd
java -version

与:

cmd
echo %JAVA_HOME%

不一致。


十、多版本 JDK 配置

推荐目录结构#

text
C:\Program Files\Java\ ├─ jdk1.8.0_401 ├─ jdk-11 ├─ jdk-17 ├─ jdk-21

通过 JAVA_HOME 切换#

例如:

text
JAVA_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 位数问题

必须:

text
JDK 与 IDE 位数一致

例如:

JDK IDE
x64 x64
x86 x86

否则可能:

  • JVM 加载失败
  • IDE 无法启动

十三、卸载 JDK 注意事项

不要直接删除目录。

推荐:

text
控制面板 → 程序和功能 → 卸载

避免:

  • 注册表残留
  • javapath 残留
  • PATH 残留

十四、CMD 与 PowerShell

CMD:

cmd
java -version

PowerShell:

powershell
java -version

查看 JAVA_HOME:

powershell
echo $env:JAVA_HOME

十五、常见问题

1. java 不是内部命令#

原因:

  • PATH 未配置
  • CMD 未重启

2. javac 找不到#

说明:

  • 只安装了 JRE
  • PATH 未指向 JDK bin

3. java -version 与 JAVA_HOME 不一致#

原因:

text
javapath 优先级更高

查看:

cmd
where java

4. CLASSPATH 导致各种问题#

Oracle 官方也强调:

全局 CLASSPATH 应谨慎使用。 citeturn0search2

现代项目:

通常不配置全局 CLASSPATH。


十六、现代 Java 推荐实践

推荐:

✅ 配置:

text
JAVA_HOME PATH

❌ 不推荐:

text
全局 CLASSPATH

十七、官方文档依据

本文整理参考:

  • Oracle JDK Windows 安装文档 citeturn0search7turn0search1turn0search9
  • Oracle PATH 与 CLASSPATH 文档 citeturn0search2
  • Oracle JAVA_HOME 配置文档 citeturn0search6turn0search0turn0search14
  • Oracle JDK 11+ javapath 文档 citeturn0search11turn0search13

十八、最终推荐配置

系统变量:

text
JAVA_HOME=C:\Program Files\Java\jdk-21

PATH 新增:

text
%JAVA_HOME%\bin

不配置:

text
CLASSPATH

验证:

cmd
java -version javac -version echo %JAVA_HOME%

如果全部正常:

✅ Java 环境配置成功