安装jdk 21成功需同时满足三条件:javac命令可用、版本正确(javac -version显示21)、编译运行无误;关键检查java_home是否指向jdk 21,path中bin路径是否对应jdk 21,且ide/maven等工具配置一致。

安装 JDK 21 后执行 javac -version 显示版本号,只是基础验证;真正确认安装成功且环境就绪,需同时满足命令可用、版本正确、编译运行无误三个条件。很多用户卡在“显示了版本却编译报错”或“IDE 识别不到”,问题往往出在路径配置或多 JDK 冲突上。
检查 JAVA_HOME 是否指向 JDK 21
这是最常被忽略的关键步骤。JDK 安装后,系统不会自动设置 JAVA_HOME,而多数构建工具(Maven、Gradle)和 IDE(如 IDEA)都依赖该变量定位 JDK。
- Windows:打开命令提示符,运行
echo %JAVA_HOME%,确认输出路径包含jdk-21(如C:\Program Files\Java\jdk-21) - macOS/Linux:在终端执行
echo $JAVA_HOME,应返回类似/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home或/usr/lib/jvm/jdk-21 - 若为空或指向旧版本,请手动设置:
– Windows:系统属性 → 高级 → 环境变量 → 新建系统变量JAVA_HOME
– macOS/Linux:在~/.zshrc或~/.bash_profile中添加export JAVA_HOME=$(/usr/libexec/java_home -v 21)(macOS)或直接写死路径
验证 PATH 是否包含 bin 目录
javac 命令能运行,说明 PATH 已包含 JDK 的 bin 子目录;但需确认它对应的是 JDK 21,而非其他版本。
- 运行
which javac(macOS/Linux)或where javac(Windows),查看返回路径 - 进入该路径,执行
ls -l(macOS/Linux)或dir(Windows),确认上级目录名含jdk-21 - 常见陷阱:系统自带 JRE 或旧 JDK 的
bin在 PATH 中更靠前,导致javac -version显示旧版。调整 PATH 顺序,把 JDK 21 的bin放最前面
运行一个最小可编译代码验证
仅靠 javac -version 无法证明 JDK 功能完整。建议用一段 JDK 21 特性代码快速实测:
- 新建文件
Hello.java,内容如下:
public class Hello {
public static void main(String[] args) {
var p = new Person("Alice", 30);
System.out.println(p.name()); // 记录类访问器
Thread.ofVirtual().start(() -> System.out.println("OK")).join(); // 虚拟线程
}
}
- 在终端执行:
javac --release 21 Hello.java(强制使用 JDK 21 API 和语法) - 再运行:
java Hello,应输出Alice和OK - 若编译失败(如 “error: illegal start of type”),说明
javac实际调用的不是 JDK 21 编译器,需回溯前两步检查
IDE 或构建工具额外确认项
即使命令行一切正常,IDE 可能仍用错 JDK —— 因为它们通常不读取系统 JAVA_HOME,而是自行管理 SDK。
- IntelliJ IDEA:File → Project Structure → Project → Project SDK → 点击下拉框,确认选中 JDK 21(名称含 “21” 或 “JetBrains Runtime 21”)
- Maven:执行
mvn -v,查看输出中的 Java version 是否为 21;若不是,在~/.m2/settings.xml中配置<toolchains></toolchains>或设置MAVEN_OPTS="-Djava.home=...jdk-21" - VS Code + Extension Pack for Java:按
Ctrl+Shift+P→ “Java: Configure Java Runtime”,确保 “Java Home” 指向 JDK 21 路径
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











