1. JDK21概述与版本特性
JDK21作为Java SE平台的上一个长期支持(LTS)版本,于2023年9月发布,将获得至少5年的官方支持。这个版本引入了15个JEP(Java增强提案),其中最重要的当属虚拟线程(Virtual Threads)的正式发布。虚拟线程彻底改变了Java的并发编程模型,使得编写高吞吐量并发应用变得前所未有的简单。
其他值得关注的新特性包括:
- 分代ZGC(JEP 439):通过分代收集提升垃圾回收效率
- 记录模式(JEP 440):简化数据导航和处理
- 字符串模板(JEP 430):增强字符串拼接的可读性
- 序列集合(JEP 431):为集合框架添加新的接口
2. 下载前的准备工作
2.1 系统环境检查
在下载JDK21之前,需要确认你的操作系统类型和架构:
- Windows用户:通过"系统信息"查看系统类型(x64或ARM64)
- Linux用户:执行
uname -m命令查看架构 - macOS用户:点击苹果菜单 > 关于本机 > 系统报告
2.2 选择合适的安装包
Oracle提供了多种格式的安装包:
- Windows:.exe(安装程序)、.msi(安装包)、.zip(便携版)
- Linux:.rpm(Red Hat系)、.deb(Debian系)、.tar.gz(通用)
- macOS:.dmg(安装镜像)、.tar.gz(压缩包)
对于开发环境,推荐使用安装程序(.exe/.msi/.dmg),它会自动配置一些基础设置;对于服务器环境,建议使用压缩包(.tar.gz/.zip)以便灵活部署。
3. 详细下载步骤
3.1 访问Oracle官方下载页面
- 打开浏览器,访问Oracle Java下载页面
- 在"Java SE Development Kit 21.0.x downloads"部分找到对应版本
- 仔细阅读许可协议,确认接受条款
注意:Oracle要求登录账户后才能下载JDK。如果没有账户,需要先注册。
3.2 选择正确的安装包
根据你的操作系统选择对应的安装包:
- Windows x64用户:jdk-21_windows-x64_bin.exe
- macOS ARM用户:jdk-21_macos-aarch64_bin.dmg
- Linux x64用户:jdk-21_linux-x64_bin.tar.gz
文件大小通常在180-210MB之间,下载时间取决于你的网络速度。
3.3 验证下载完整性
下载完成后,建议验证文件SHA256校验和以确保下载完整:
bash复制# Windows
certutil -hashfile jdk-21_windows-x64_bin.exe SHA256
# Linux/macOS
shasum -a 256 jdk-21_linux-x64_bin.tar.gz
将输出与官网提供的校验和进行比对。
4. 安装过程详解
4.1 Windows系统安装
- 双击下载的.exe文件启动安装向导
- 选择安装位置(默认是C:\Program Files\Java\jdk-21)
- 等待安装进度完成
- 可选安装公共JRE(通常不需要)
安装完成后,JDK会被自动添加到系统路径中。可以通过命令提示符验证:
cmd复制java -version
javac -version
4.2 macOS系统安装
- 双击.dmg文件挂载磁盘映像
- 拖动JDK图标到Applications文件夹
- 在终端中确认安装:
bash复制/usr/libexec/java_home -V
macOS可能会阻止来自非App Store的应用运行。如果遇到这种情况:
- 前往系统设置 > 隐私与安全性
- 点击"仍要打开"授权安装
4.3 Linux系统安装
对于.tar.gz压缩包:
bash复制tar -xzf jdk-21_linux-x64_bin.tar.gz
sudo mv jdk-21 /opt/
对于.deb包(Ubuntu/Debian):
bash复制sudo apt install ./jdk-21_linux-x64_bin.deb
对于.rpm包(CentOS/RHEL):
bash复制sudo rpm -ivh jdk-21_linux-x64_bin.rpm
5. 环境变量配置
5.1 Windows环境配置
- 打开系统属性 > 高级 > 环境变量
- 在系统变量中新建:
- 变量名:JAVA_HOME
- 变量值:C:\Program Files\Java\jdk-21
- 编辑Path变量,添加:%JAVA_HOME%\bin
5.2 Linux/macOS环境配置
在~/.bashrc或~/.zshrc末尾添加:
bash复制export JAVA_HOME=/opt/jdk-21
export PATH=$JAVA_HOME/bin:$PATH
然后执行:
bash复制source ~/.bashrc
6. 安装后验证
执行以下命令验证安装是否成功:
bash复制java -version
javac -version
预期输出应包含"21"版本号信息。
7. 多版本管理
7.1 Windows多版本切换
使用系统环境变量Path中JDK路径的顺序来控制默认版本。也可以通过完整路径指定:
cmd复制"C:\Program Files\Java\jdk-21\bin\java" -version
7.2 Linux/macOS多版本管理
使用update-alternatives工具:
bash复制sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk-21/bin/java" 1
sudo update-alternatives --config java
8. 常见问题解决
8.1 "java不是内部或外部命令"
这表明环境变量配置不正确。检查:
- JAVA_HOME是否指向正确的JDK目录
- Path是否包含%JAVA_HOME%\bin
- 是否重新打开了命令提示符窗口
8.2 版本显示不正确
可能是系统中安装了多个Java版本。使用完整路径执行或调整环境变量顺序。
8.3 macOS Gatekeeper阻止运行
右键点击安装程序,选择"打开"而非双击,然后确认运行。
8.4 Linux权限问题
确保JDK目录及其内容有可执行权限:
bash复制chmod -R +x /opt/jdk-21/bin
9. 开发工具配置
9.1 IntelliJ IDEA设置
- 打开File > Project Structure > SDKs
- 添加JDK21的安装路径
- 在项目设置中选择JDK21作为项目SDK
9.2 Eclipse设置
- 打开Window > Preferences > Java > Installed JREs
- 添加JDK21的安装路径
- 设置为默认JRE
9.3 Visual Studio Code配置
安装Java扩展包后,在settings.json中添加:
json复制"java.home": "/opt/jdk-21"
10. 性能优化建议
10.1 启用分代ZGC
在启动参数中添加:
code复制-XX:+UseZGC -XX:+ZGenerational
这可以显著减少GC停顿时间,特别适合大内存应用。
10.2 虚拟线程配置
默认虚拟线程调度器已经优化得很好,但可以通过以下参数调整:
code复制-Djdk.virtualThreadScheduler.parallelism=4
根据CPU核心数设置合适的并行度。
10.3 模块化优化
使用jlink创建自定义运行时镜像,减小部署体积:
bash复制jlink --module-path $JAVA_HOME/jmods --add-modules java.base --output myjre
11. 卸载JDK21
11.1 Windows卸载
- 通过控制面板 > 程序和功能
- 找到Java SE Development Kit 21
- 点击卸载
11.2 macOS卸载
bash复制sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-21.jdk
11.3 Linux卸载
对于压缩包安装:
bash复制sudo rm -rf /opt/jdk-21
对于包管理器安装:
bash复制sudo apt remove jdk-21 # Debian/Ubuntu
sudo yum remove jdk-21 # RHEL/CentOS
