1. JDK21简介与版本特性
JDK21作为Java开发工具包的最新长期支持(LTS)版本,于2023年9月正式发布。这个版本引入了多项重要改进,其中最值得关注的是虚拟线程(Virtual Threads)的正式落地。虚拟线程彻底改变了Java处理并发的方式,使得开发者能够以更低的资源开销编写高吞吐量的并发应用。
除了虚拟线程外,JDK21还包含以下关键特性:
- 分代ZGC(Generational ZGC):显著降低垃圾收集器的内存开销
- 记录模式(Record Patterns):简化数据导航和处理
- 字符串模板(String Templates):增强字符串拼接的可读性和安全性
- 序列化集合(Sequenced Collections):为集合类型提供统一的访问接口
提示:虽然JDK21是LTS版本,但生产环境升级前仍需充分测试,特别是依赖特定JVM行为的应用。
2. 下载JDK21的详细步骤
2.1 访问Oracle官方网站
首先打开浏览器访问Oracle JDK下载页面。注意不要从第三方网站下载JDK,以避免安全风险。在页面中找到JDK21的下载卡片,点击进入详情页。
2.2 选择正确的安装包
根据你的操作系统选择对应的安装包:
- Windows系统:推荐下载x64 Installer(.msi后缀)
- macOS系统:选择macOS Installer(.dmg后缀)
- Linux系统:根据发行版选择rpm或tar.gz包
注意:Oracle JDK现在需要登录Oracle账户才能下载。如果没有账户,可以注册一个免费账户,或者考虑使用OpenJDK构建版本。
2.3 下载注意事项
下载过程中需要注意:
- 确保网络连接稳定,JDK安装包大小约200MB
- 记录下载文件的保存位置,通常浏览器默认保存在"下载"文件夹
- 核对文件哈希值(Oracle提供SHA256校验和)以确保文件完整性
3. Windows系统安装JDK21
3.1 运行安装向导
双击下载的.msi文件启动安装向导。在第一个界面点击"Next",然后阅读并接受许可协议。接下来是关键步骤:
- 选择安装功能:默认全选即可,包括开发工具、源代码和公共JRE
- 设置安装路径:建议修改默认路径,例如D:\Java\jdk-21
- 确认安装:点击"Install"开始安装
3.2 安装后验证
安装完成后,打开命令提示符(cmd)并输入以下命令验证安装:
bash复制java -version
正确安装会显示类似输出:
code复制java version "21" 2023-09-19
Java(TM) SE Runtime Environment (build 21+35-LTS-2513)
Java HotSpot(TM) 64-Bit Server VM (build 21+35-LTS-2513, mixed mode, sharing)
4. 配置环境变量(Windows)
4.1 设置JAVA_HOME
- 右键"此电脑"选择"属性"
- 点击"高级系统设置"→"环境变量"
- 在系统变量中新建变量:
- 变量名:JAVA_HOME
- 变量值:JDK安装路径(如D:\Java\jdk-21)
4.2 更新Path变量
在系统变量中找到Path变量,点击编辑:
- 新建条目:%JAVA_HOME%\bin
- 上移这条目到靠前位置
4.3 验证配置
重新打开命令提示符,执行:
bash复制echo %JAVA_HOME%
应显示你的JDK安装路径。再执行:
bash复制javac -version
应显示javac 21的版本信息。
5. macOS系统安装与配置
5.1 安装过程
双击下载的.dmg文件,然后运行其中的.pkg安装包。按照向导步骤:
- 同意许可协议
- 选择安装位置(通常保持默认)
- 输入管理员密码完成安装
5.2 配置环境
macOS通常不需要手动配置JAVA_HOME,但如果你想设置:
bash复制# 编辑bash配置文件
nano ~/.zshrc
# 添加以下内容
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
export PATH=$JAVA_HOME/bin:$PATH
# 使配置生效
source ~/.zshrc
6. Linux系统安装方法
6.1 使用包管理器安装
对于基于Debian的系统:
bash复制sudo apt update
sudo apt install openjdk-21-jdk
对于基于RPM的系统:
bash复制sudo yum install java-21-openjdk-devel
6.2 手动安装tar.gz包
- 解压下载的压缩包:
bash复制tar -xzf jdk-21_linux-x64_bin.tar.gz -C /opt
- 设置环境变量:
bash复制export JAVA_HOME=/opt/jdk-21
export PATH=$JAVA_HOME/bin:$PATH
- 永久生效可添加到~/.bashrc或/etc/profile
7. 常见问题排查
7.1 版本冲突问题
如果系统已安装其他JDK版本,可能出现版本混乱。解决方法:
bash复制# Windows使用where命令查找所有java.exe
where java
# Linux/macOS使用which和update-alternatives
which java
sudo update-alternatives --config java
7.2 环境变量不生效
检查步骤:
- 确认JAVA_HOME路径正确
- 确保Path中包含%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(Linux/macOS)
- 重新启动终端或执行source命令使更改生效
7.3 安装后命令找不到
可能原因:
- 安装过程中断导致文件不完整
- 环境变量配置错误
- 系统缓存未更新
解决方法:
- 重新安装JDK
- 仔细检查环境变量
- 重启计算机
8. 开发工具配置
8.1 IntelliJ IDEA设置
- 打开File→Project Structure→SDKs
- 点击"+"添加JDK,选择JDK21安装目录
- 在项目设置中将语言级别设为21
8.2 Eclipse配置
- 打开Window→Preferences→Java→Installed JREs
- 点击Add→Standard VM,选择JDK21目录
- 创建新项目时选择Java21执行环境
8.3 Maven项目配置
在pom.xml中指定Java版本:
xml复制<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>
9. 升级注意事项
从旧版本升级到JDK21需要考虑:
- 检查依赖库的兼容性,特别是使用了反射或内部API的库
- 测试虚拟线程与传统线程池的交互
- 评估分代ZGC对应用性能的影响
- 更新构建工具和CI/CD环境的JDK版本
建议先在测试环境验证,再逐步推广到生产环境。对于关键业务系统,可以考虑并行运行一段时间,确保稳定性。
