JDK 17 和 JDK 21 环境变量配置本质相同,仅路径值和变量命名不同;JDK 11+ 已移除独立 JRE,PATH 中只需添加 %JAVA_HOME%\bin,无需 %JAVA_HOME%\jre\bin;多版本共存时应通过 JAVA_HOME17/JAVA_HOME21 间接引用切换,且须删除安装器自动添加的 javapath 条目。

JDK 17 和 JDK 21 的环境变量配置没有本质区别,核心逻辑完全一致;区别只在于路径值、变量命名习惯和是否需要额外配 jre\bin。
PATH 中要不要加 %JAVA_HOME%\jre\bin?
JDK 11 起,JRE 已被移除,bin 目录直接包含 java、javac 等全部命令。JDK 17 和 JDK 21 都是 JDK 11+ 版本,所以:
- 只加
%JAVA_HOME%\bin就够了,%JAVA_HOME%\jre\bin不仅多余,还可能引发冲突(尤其当你误装了独立 JRE) - 如果 PATH 里同时存在两个
bin路径,系统会按顺序查找——靠前的路径优先命中,容易导致版本错乱 - 验证方式不变:新开 cmd,执行
java -version和javac -version,两者输出版本号必须一致
JAVA_HOME 路径写法差异
JDK 安装路径命名规则变了,直接影响 JAVA_HOME 的值:
- JDK 17 典型路径:
D:\Java\jdk-17.0.2或C:\Program Files\Java\jdk-17(注意空格风险) - JDK 21 典型路径:
D:\Java\jdk-21.0.3或C:\Program Files\Java\jdk-21(2026 年主流安装包已弃用jdk-21.0.x中的补丁号后缀,统一为jdk-21) - 路径中不能含中文、空格、括号;若用了默认
C:\Program Files\Java\...,务必用双引号包裹(但 Windows 环境变量本身不支持引号,所以应主动避开)
多版本共存时变量名怎么设才不踩坑
想同时装 JDK 17 和 JDK 21 并快速切换,关键不是改 JAVA_HOME,而是用“间接引用”:
- 新建两个系统变量:
JAVA_HOME17值为D:\Java\jdk-17,JAVA_HOME21值为D:\Java\jdk-21 -
JAVA_HOME本身只设一个值:%JAVA_HOME21%或%JAVA_HOME17%,通过改这一个变量实现切换 - 绝对不要在
Path里硬编码路径(如D:\Java\jdk-21\bin),否则切换时要手动改 Path,极易遗漏或拼错 - 每次修改后,必须新开命令行窗口验证——旧窗口缓存的是启动时的环境变量快照
真正容易被忽略的点是:JDK 21 的安装包默认不再创建 javapath 这类自动注册项,而 JDK 17 旧版安装器有时会偷偷往 Path 里塞一条 C:\Program Files (x86)\Common Files\Oracle\Java\javapath。这条路径若残留,会覆盖你手动配置的 JAVA_HOME,导致 java -version 显示的永远是旧版本。动手前先检查 Path 列表里有没有它,有就删掉。

















