JDK 21 在 Windows 11 安装需避开空格路径、PATH 配置错误和旧版本干扰三大坑:下载官方 MSI 包(如 Temurin 的 .msi),取消勾选“Add to PATH”,手动设 JAVA_HOME 和 %JAVA_HOME%\bin,验证 java -version、java -Xshare:check 及虚拟线程运行。

Java JDK 21 能直接在 Windows 11 上装,但默认安装路径含空格、PATH 配置容易漏、java -version 不生效是三大高频失败点。
下载时认准 jdk-21_*.msi 安装包,别选 .zip 或 Windows x64 Installer 模糊描述
Oracle 官网和 Eclipse Temurin(推荐)都提供 MSI 格式安装器,它会自动注册系统环境变量、关联文件类型;而 .zip 包需手动解压+配置 JAVA_HOME 和 PATH,新手极易出错。Temurin 的下载页明确标有 MSI 后缀,点进去确认文件名是 OpenJDK21U-jdk_x64_windows_hotspot_21.0.0_35.msi 这类格式再下载。
- 用 Edge 或 Chrome 下载,Firefox 有时会把
.msi当附件拦截 - 别从第三方镜像站下“精简版”或“绿色版”,它们常删掉
jmods目录,导致jlink工具失效 - 安装前关掉杀毒软件——某些国产安全软件会误拦 MSI 的注册表写入操作
安装过程必须取消勾选“Add to PATH”,改用手动配 JAVA_HOME + PATH
MSI 安装器默认勾选“Add to PATH”,看似省事,实则埋雷:它把 C:\Program Files\Java\jdk-21\bin 直接加进系统 PATH,但路径含空格,部分构建工具(如 Gradle 8.4+、Maven 的某些插件)解析失败,报错 The filename, directory name, or volume label syntax is incorrect。
- 安装时取消勾选“Add to PATH”
- 装完立刻进“系统属性 → 高级 → 环境变量”,新建系统变量:
JAVA_HOME值设为C:\Program Files\Java\jdk-21(不带\bin) - 编辑系统
PATH,新增一项:%JAVA_HOME%\bin(用变量引用,避免硬编码空格路径) - 新开一个命令提示符,运行
echo %JAVA_HOME%确认输出正确,再跑java -version
javac 找不到或 java -version 显示旧版本?八成是残留的旧 JDK 干扰
Windows 11 可能预装了 OpenJDK 17(来自 Microsoft Store),或你之前装过 JDK 8/11,它们的 bin 目录若在 PATH 里排在新 JDK 前面,就会优先被调用。
立即学习“Java免费学习笔记(深入)”;
- 运行
where java和where javac,看返回的第一行路径是不是你刚装的 JDK 21 - 如果返回多个路径,检查
PATH顺序:把%JAVA_HOME%\bin拖到最顶部 - 删掉旧 JDK 的
bin条目,比如C:\Program Files\AdoptOpenJDK\jdk-11.0.11.9-hotspot\bin - 重启终端——CMD/PowerShell 不会自动读取新环境变量,必须新开窗口
验证 JDK 21 特性是否就绪:重点测 java --version 和 java -Xshare:check
JDK 21 是 LTS 版本,带 ZGC、虚拟线程(Thread.ofVirtual())、Pattern Matching for switch 等特性,但默认安装不启用所有功能。验证不是只看版本号,得确认关键能力可用。
-
java --version输出应含21.0.0且无pre-release字样 -
java -Xshare:check应返回sharing is enabled,说明类数据共享(CDS)正常,启动更快 - 写个最小测试类,用虚拟线程:
Thread.ofVirtual().start(() -> System.out.println("ok"));,编译运行不报错才算真正就绪 - IDE(如 IntelliJ)需在 Settings → Build → SDKs 里手动指定
JDK home path,不能依赖系统自动探测
最容易被忽略的是:JDK 21 默认禁用 sun.misc.Unsafe 的部分方法,如果你的老项目用了反射绕过访问控制,会直接抛 UnsupportedOperationException——这不是环境没配好,是 JDK 行为变更,得改代码。










