一、版本选型与核心说明
1.1 Java 发布节奏官方说明
自 Java 9 起,Oracle 正式采用6 个月一个特性版本的发布节奏,固定每年 3 月与 9 月各发布一个新版本,未完成的特性会顺延至下一个版本,不再为单个功能拖延整体发布周期。
其中长期支持(LTS)版本的发布节奏经历过一次官方调整:
-
JDK 11(2018.09)、JDK 17(2021.09):遵循每 3 年一个 LTS 的初始规则
-
从 JDK 21 开始,Oracle 将 LTS 发布周期缩短为每 2 年一个版本,后续 JDK 25(2025.09)、JDK 29(2027.09)均按此节奏迭代
非 LTS 版本仅提供 6 个月的公开更新,适合尝鲜新特性;LTS 版本提供多年技术支持,是开发、生产环境的标准选择。
1.2 为什么选择 JDK 21
JDK 21 发布于 2023 年 9 月,是当前企业存量项目与学习场景最均衡的选择:
-
成熟稳定的 LTS 版本:经过 2 年多的生态适配,主流框架(Spring Boot 3.x、MyBatis-Plus 等)与开发工具均已完美兼容
-
免费商用许可:在 Oracle NFTC(No-Fee Terms and Conditions)协议下,可免费用于生产环境与二次分发,无授权风险
-
核心特性落地 :虚拟线程、模式匹配、结构化并发等重要特性正式转正,开发效率提升显著
-
支持周期明确 :NFTC 协议下的免费更新持续至 2026 年 9 月(即下一个 LTS 版本 JDK 25 发布后 12 个月),之后更新转为 OTN 付费许可
1.3 选型补充:Oracle JDK vs OpenJDK
两者基于同一套 OpenJDK 源码构建,功能与性能无本质差异,核心区别在授权与分发:
-
Oracle JDK 21:个人学习、商业生产均可免费使用,2026 年 9 月后安全更新需付费订阅;附带官方安装向导与配套工具
-
OpenJDK 发行版(如 Eclipse Temurin、Amazon Corretto):基于 GPLv2+CE 协议永久免费商用,无授权到期风险。
本文以 Oracle JDK 21 为例演示安装流程,OpenJDK 发行版的安装与环境变量配置步骤完全通用。
二、安装前准备
下载前请确认系统信息,避免下载错误架构的安装包:
Windows 系统
右键「此电脑」→「属性」,查看系统类型:当前主流设备均为 64 位操作系统,对应下载 x64 版本安装包。

macOS 系统
点击桌面左上角苹果图标 →「关于本机」,查看芯片类型:
-
Intel 芯片:下载 x64 版本
-
M1/M2/M3/M4 等 Apple Silicon 芯片:下载 arm64 版本
三、官方下载流程(安全无捆绑)
3.1 官方下载入口
直接访问 Oracle 官方下载页:Java Downloads | Oracle
不建议从第三方站点下载,避免捆绑软件与篡改安装包。
3.2 选择 JDK 21 对应版本
-
页面下拉找到 Java 21 下载区域,点击「JDK Download」
-
切换到对应系统选项卡(Linux / macOS / Windows)
-
根据需求选择安装包格式:
|------------------------------------|----------|------------------------|
| 安装包格式 | 适用场景 | 说明 |
| x64 Installer(exe/dmg) | 普通开发者、新手 | 图形化安装向导,操作最简单 |
| x64 Compressed Archive(zip/tar.gz) | 进阶用户 | 绿色免安装,可自定义存放路径,需手动配置环境 |
| x64 MSI Installer | 企业批量部署 | 支持组策略、脚本批量安装 |

这里下载x64 Installer即可。
3.3 下载注意事项
-
下载前需勾选接受许可协议
-
部分地区会提示登录 Oracle 账号,可使用邮箱免费注册,或尝试跳过登录直接下载
-
Windows 安装包文件名为
jdk-21_windows-x64_bin.exe,大小约 160-170MB
四、Windows 10/11 安装与环境配置
4.1 运行安装向导
-
双击下载的 exe 安装包,启动安装向导,点击「下一步」
-
选择安装路径 :

-
不建议使用默认的
C:\Program Files\Java\jdk-21(路径含空格,部分旧工具可能出现兼容问题) -
推荐自定义为无中文、无空格的路径,例如
E:\develop\java_jdk\jdk21 -
务必记住该路径,后续配置环境变量需要用到
-
-
组件保持默认「开发工具」勾选即可,无需额外安装公共 JRE
-
等待安装进度完成,点击「关闭」结束安装

4.2 环境变量配置(核心步骤)
环境变量的作用是让系统在任意目录下都能识别 java、javac 等命令,是开发环境的标准配置。
重要澄清:JDK 11 及以后版本不需要配置 jre \ bin 路径,也不需要配置 CLASSPATH。这两项是 JDK 8 及更早版本的遗留配置,当前版本配置反而可能引发冲突。
打开环境变量窗口
推荐使用快捷命令:按下 Win + R ,输入**sysdm.cpl**并回车 → 切换到「高级」选项卡 → 点击右下角「环境变量」。
配置系统变量
所有操作均在**下方「系统变量」**区域进行,不要配置到用户变量,避免切换账号后失效。
① 新建 JAVA_HOME 变量

-
点击「系统变量」下方的「新建」
-
变量名:
JAVA_HOME(严格全大写,行业标准约定,Maven、Tomcat 等工具都会读取该变量) -
变量值:JDK 21 的安装根目录,例如
E:\Develop\java_jdk\jdk21 -
点击「确定」保存
② 编辑 Path 变量

-
在系统变量列表中找到
Path,双击打开编辑窗口 -
点击「新建」,输入:
%JAVA_HOME%\bin -
可选:选中该行,点击「上移」将其移到列表顶部,避免与系统中其他 Java 版本冲突
-
连续点击「确定」关闭所有窗口,保存配置
4.3 配置生效验证
按下 Win + R 输入 cmd 打开命令提示符,依次执行以下命令:
java -version
javac -version
若命令均正常输出版本号与路径,且 java 与 javac 版本号一致,则基础配置成功。


五、macOS 安装与环境配置
5.1 运行安装程序
-
双击下载的
.dmg镜像文件,挂载安装包 -
双击镜像内的
JDK 21.pkg启动安装向导 -
点击「继续」→ 同意许可协议 → 选择安装位置(默认即可)
-
输入 Mac 开机密码确认安装,等待进度完成后点击「关闭」
JDK 21 在 macOS 下的默认安装路径为:
/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
5.2 环境变量配置
macOS 10.15 Catalina 及以上版本默认使用 zsh 终端,更早版本使用 bash 终端,配置文件不同。
第一步:确认终端类型
打开「终端」,执行命令:
bash
echo $SHELL
-
输出
/bin/zsh:对应 zsh 终端(绝大多数用户) -
输出
/bin/bash:对应 bash 终端
第二步:编辑配置文件
zsh 终端配置:
bash
# 若文件不存在会自动创建
open ~/.zshrc
bash 终端配置:
bash
open ~/.bash_profile
在打开的文本文件末尾添加以下两行内容:
bash
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
保存并关闭文件。
第三步:使配置立即生效
bash
# zsh 用户执行
source ~/.zshrc
# bash 用户执行
source ~/.bash_profile
5.3 验证配置
终端依次执行:
bash
java -version
javac -version
echo $JAVA_HOME
输出正常则配置完成。
六、JDK 21 目录结构官方解析
JDK 21 采用模块化架构,不再包含独立的 jre 目录 ,运行时能力已整合进 JDK 自身;如需独立 JRE 可通过 jlink 工具按需生成。
核心目录说明:
bash
jdk-21/
├── bin/ # 核心可执行文件:java、javac、jar、javadoc、jps、jstack 等开发与调试命令
├── conf/ # 配置文件目录:安全策略、网络配置、加密算法配置等
├── include/ # C 语言头文件:用于 JNI、JVM TI 等原生交互开发
├── jmods/ # 模块系统文件:JDK 模块化后的核心类库载体
├── legal/ # 开源许可与法律声明文件
├── lib/ # 支撑类库与运行时依赖文件
└── release # 版本信息文件,记录 JDK 版本、构建号等信息
七、正反双向验证指南
7.1 正向验证:完整可用性校验
仅命令输出正常不足以完全验证环境可用性,推荐通过编译运行 Java 程序做完整校验:
-
新建文本文件,重命名为
HelloWorld.java -
写入以下代码:
javapublic class HelloWorld { public static void main(String[] args) { System.out.println("JDK 21 环境配置成功!"); } } -
在文件所在目录打开命令行,执行编译:
bashjavac HelloWorld.java -
执行运行命令:
bashjava HelloWorld
7.2 逆向验证:常见故障排查
以下是安装配置中最高频的问题,对应精准排查方案:
|----------------------------|------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| 故障现象 | 核心原因 | 解决方法 |
| 输入 javac 提示「不是内部或外部命令」 | 1. JAVA_HOME 路径配置错误 2. Path 中未添加%JAVA_HOME%\bin 3. 配置后未重启命令行窗口 | 1. 执行 echo %JAVA_HOME% 核对路径是否真实存在 2. 检查 Path 变量拼写,确保百分号完整 3. 关闭所有 CMD 窗口后重新打开验证 |
| java -version 版本与安装版本不一致 | 系统存在多个 Java 版本,Path 优先级错误 | 在 Path 环境变量中将 %JAVA_HOME%\bin 上移至最顶部;卸载不需要的旧版本 |
| 安装时提示「权限不足」 | Windows 未以管理员身份运行;macOS 密码错误或无权限 | Windows:右键安装包 →「以管理员身份运行」macOS:确认开机密码正确,账号具备管理员权限 |
| macOS 提示「无法打开,无法验证开发者」 | 系统安全策略限制 | 右键安装包 → 选择「打开」→ 在弹窗中再次点击「打开」;或在「系统设置→安全性与隐私」中点击「仍要打开」 |
| 环境变量配置后仍不生效 | 配置文件选错、未执行 source 命令 | 确认终端类型对应正确的配置文件,执行 source 命令后重启终端再验证 |
八、JDK 多版本管理(可跳过)
实际开发中常需在不同项目间切换 JDK 版本,手动修改环境变量效率较低,推荐以下方案:
Windows:简易切换脚本
新建 jdk21.bat 文件,写入:
bash
@echo off
set JAVA_HOME=D:\Develop\Java\jdk-21
set Path=%JAVA_HOME%\bin;%Path%
java -version
需要切换版本时,在当前命令行窗口运行该脚本即可(仅当前窗口生效,不影响全局)。
macOS:使用 jenv 工具
bash
# 安装 jenv(需先安装 Homebrew)
brew install jenv
# 添加 JDK 版本到管理
jenv add /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
# 查看已管理的所有版本
jenv versions
# 全局切换默认版本
jenv global 21
# 仅当前目录切换版本
jenv local 17
通常情况下在IDEA中可以直接手动切换,简单快捷。
九、总结
JDK 21 作为当前生态最成熟的 LTS 版本,是 Java 学习与企业开发的稳妥选择。安装配置本身并不复杂,绝大多数问题都源于路径拼写错误、混淆新旧版本配置规则。