JDK21安装指南:从下载到环境配置全解析
一、版本选型与核心说明1.1 Java 发布节奏官方说明自 Java 9 起Oracle 正式采用6 个月一个特性版本的发布节奏固定每年 3 月与 9 月各发布一个新版本未完成的特性会顺延至下一个版本不再为单个功能拖延整体发布周期。其中长期支持LTS版本的发布节奏经历过一次官方调整JDK 112018.09、JDK 172021.09遵循每 3 年一个 LTS 的初始规则从 JDK 21 开始Oracle 将 LTS 发布周期缩短为每 2 年一个版本后续 JDK 252025.09、JDK 292027.09均按此节奏迭代非 LTS 版本仅提供 6 个月的公开更新适合尝鲜新特性LTS 版本提供多年技术支持是开发、生产环境的标准选择。1.2 为什么选择 JDK 21JDK 21 发布于 2023 年 9 月是当前企业存量项目与学习场景最均衡的选择成熟稳定的LTS版本经过 2 年多的生态适配主流框架Spring Boot 3.x、MyBatis-Plus 等与开发工具均已完美兼容免费商用许可在 Oracle NFTCNo-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基于 GPLv2CE 协议永久免费商用无授权到期风险。本文以 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 Installerexe/dmg普通开发者、新手图形化安装向导操作最简单x64 Compressed Archivezip/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/Home5.2 环境变量配置macOS 10.15 Catalina 及以上版本默认使用 zsh 终端更早版本使用 bash 终端配置文件不同。第一步确认终端类型打开「终端」执行命令echo $SHELL输出/bin/zsh对应 zsh 终端绝大多数用户输出/bin/bash对应 bash 终端第二步编辑配置文件zsh 终端配置# 若文件不存在会自动创建 open ~/.zshrcbash 终端配置open ~/.bash_profile在打开的文本文件末尾添加以下两行内容export JAVA_HOME/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home export PATH$JAVA_HOME/bin:$PATH保存并关闭文件。第三步使配置立即生效# zsh 用户执行 source ~/.zshrc # bash 用户执行 source ~/.bash_profile5.3 验证配置终端依次执行java -version javac -version echo $JAVA_HOME输出正常则配置完成。六、JDK 21 目录结构官方解析JDK 21 采用模块化架构不再包含独立的jre目录运行时能力已整合进 JDK 自身如需独立 JRE 可通过jlink工具按需生成。核心目录说明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写入以下代码public class HelloWorld { public static void main(String[] args) { System.out.println(JDK 21 环境配置成功); } }在文件所在目录打开命令行执行编译javac HelloWorld.java执行运行命令java HelloWorld7.2 逆向验证常见故障排查以下是安装配置中最高频的问题对应精准排查方案故障现象核心原因解决方法输入javac提示「不是内部或外部命令」1. JAVA_HOME 路径配置错误2. Path 中未添加%JAVA_HOME%\bin3. 配置后未重启命令行窗口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文件写入echo off set JAVA_HOMED:\Develop\Java\jdk-21 set Path%JAVA_HOME%\bin;%Path% java -version需要切换版本时在当前命令行窗口运行该脚本即可仅当前窗口生效不影响全局。macOS使用 jenv 工具# 安装 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 学习与企业开发的稳妥选择。安装配置本身并不复杂绝大多数问题都源于路径拼写错误、混淆新旧版本配置规则。

相关新闻

从爱驰U5复盘新势力造车:产品定义、技术叙事与生存逻辑

从爱驰U5复盘新势力造车:产品定义、技术叙事与生存逻辑

1. 一次坦诚的复盘:从“爱驰U5”看新势力造车的真实生存逻辑 最近,我身边一位朋友把他开了快三年的爱驰U5挂上了二手车平台,价格比我预想的要低不少。这让我想起了这款车,以及它背后那个曾经被寄予厚望的品牌——爱驰汽车。坦白说…

2026/8/18 20:34:07 阅读更多 →
汽车底盘技术解析:平台架构与FSD减震器如何塑造驾驶质感

汽车底盘技术解析:平台架构与FSD减震器如何塑造驾驶质感

1. 从“神车”到“新宝骏”:一次底盘革新的背后 提到宝骏,很多人脑海里蹦出来的第一个词可能就是“神车”。确实,从730到560,再到510,宝骏用一款又一款爆品,精准地切中了中国最广大消费者的核心需求&#x…

2026/8/18 20:34:07 阅读更多 →
前端性能优化如何管理渲染与内存

前端性能优化如何管理渲染与内存

前端性能优化如何管理渲染与内存 性能优化先回答用户在哪一步等待。Core Web Vitals 给出体验指标,浏览器性能面板帮助把指标落到请求、脚本和渲染任务。 1. 先明确问题边界 在受控网络和真实设备上记录 LCP、INP、CLS,并保存页面版本与测试路径。首屏只…

2026/8/18 20:34:07 阅读更多 →

最新新闻

基于树莓派与超声波传感器的智能液位控制系统设计与实现

基于树莓派与超声波传感器的智能液位控制系统设计与实现

1. 项目概述:当树莓派遇上超声波,咖啡机也能“聪明”起来 如果你和我一样,是个每天靠咖啡“续命”的程序员或硬件爱好者,那你肯定对咖啡机不陌生。但普通的咖啡机,要么是手动凭感觉加水,要么是预设一个固定…

2026/8/19 1:07:57 阅读更多 →
边缘自动化实战:N8n在树莓派等终端设备的部署与应用

边缘自动化实战:N8n在树莓派等终端设备的部署与应用

1. 项目概述:当N8n遇上终端设备如果你正在寻找一种方法,将你手头那些“沉默”的终端设备——比如一台闲置的旧手机、一块树莓派,甚至是一台工控机——变成能自动响应事件、执行任务的智能节点,那么将N8n与终端设备结合&#xff0c…

2026/8/19 1:07:57 阅读更多 →
无奖励自微调智能体:实现自适应RAN切片控制的未来路径

无奖励自微调智能体:实现自适应RAN切片控制的未来路径

1. 从“一刀切”到“自适应”:RAN切片控制的演进与挑战在移动通信网络里,资源分配一直是个老大难问题。想象一下,你管理着一个大型体育场,里面同时进行着足球赛、交响乐会和一场需要实时直播的电子竞技。足球赛需要稳定的、大带宽…

2026/8/19 1:07:57 阅读更多 →
基于LM317的线性稳压电源DIY:从原理到实践打造可调压恒流实验电源

基于LM317的线性稳压电源DIY:从原理到实践打造可调压恒流实验电源

1. 从零到一:为什么我们需要一个“Power Supply V1.0”?如果你玩过单片机、树莓派,或者捣鼓过一些电子小制作,那你一定对桌上那堆“黑砖头”不陌生——各种规格的开关电源适配器,12V的、5V的、9V的,线缆缠成…

2026/8/19 1:07:57 阅读更多 →
高效沟通:从个人防护到团队文化的防打断三层体系

高效沟通:从个人防护到团队文化的防打断三层体系

1. 项目概述:从“打断”到“优雅协作”的沟通艺术“Pardon Me for Interrupting (Part Deux)”这个标题,乍一看像是一部电影的续集,但在日常沟通、会议管理乃至团队协作的语境下,它指向了一个我们每个人都频繁遭遇,却又…

2026/8/19 1:07:57 阅读更多 →
美国结婚证公证海牙认证,完整办理流程与材料清单一次性讲清

美国结婚证公证海牙认证,完整办理流程与材料清单一次性讲清

不少人在美国登记结婚后,需要将结婚证带到其他海牙成员国办理房产交易、资产申报、诉讼相关事务。很多申请人初次办理很容易踩坑:文件版本选错、流程顺序出错、不熟悉各州规则,材料反复被退回,耽误办事进度。本文针对美国结婚证用…

2026/8/19 1:06:56 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →