1. JDK21安装前的准备工作
在开始安装JDK21之前,我们需要先了解几个关键概念。JDK(Java Development Kit)是Java开发工具包的简称,它包含了运行Java程序所需的所有组件:JRE(Java Runtime Environment)、编译器(javac)、调试器(jdb)以及其他开发工具。JDK21是Oracle于2023年9月发布的长期支持版本(LTS),这意味着它将获得至少5年的技术支持。
1.1 系统兼容性检查
JDK21支持以下操作系统:
- Windows 10/11(x64)
- macOS 10.15及以上(ARM64和x64)
- Linux(主流的x64发行版)
在安装前,建议检查你的系统架构:
- Windows:在命令提示符中输入
wmic os get osarchitecture - macOS/Linux:在终端输入
uname -m
1.2 下载JDK21安装包
官方下载渠道有两个选择:
- Oracle JDK(商业用途需授权):https://www.oracle.com/java/technologies/downloads/
- OpenJDK(开源免费):https://jdk.java.net/21/
对于个人开发者或学习用途,我推荐使用OpenJDK版本,它完全免费且功能与Oracle JDK基本一致。下载时注意选择与你的操作系统匹配的安装包格式:
- Windows:.msi或.zip
- macOS:.pkg或.tar.gz
- Linux:.deb/.rpm或.tar.gz
提示:如果你需要同时管理多个JDK版本,可以考虑使用jEnv或SDKMAN等版本管理工具,这在后续章节会详细介绍。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Windows系统安装JDK21详细步骤
2.1 使用安装程序(.msi)安装
对于Windows用户,最简单的安装方式是使用.msi安装程序:
- 双击下载的jdk-21_windows-x64_bin.msi文件
- 在安装向导中,可以修改安装路径(默认是C:\Program Files\Java\jdk-21)
- 点击"下一步"直到安装完成
安装程序会自动完成以下操作:
- 将JDK安装到指定目录
- 在Windows注册表中注册Java
- 可选地设置JAVA_HOME环境变量
2.2 手动配置环境变量
即使使用.msi安装,我仍建议手动检查环境变量配置:
- 右键"此电脑" → 属性 → 高级系统设置 → 环境变量
- 在系统变量中新建:
- 变量名:JAVA_HOME
- 变量值:C:\Program Files\Java\jdk-21(你的实际安装路径)
- 编辑Path变量,添加两条新路径:
- %JAVA_HOME%\bin
- %JAVA_HOME%\jre\bin
验证配置是否成功:
- 打开新的命令提示符(重要:必须新开窗口)
- 输入以下命令检查版本:
bash复制
应该显示类似这样的输出:java -version javac -versioncode复制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)
2.3 使用ZIP包安装(绿色版)
如果你更喜欢便携式安装:
- 将jdk-21_windows-x64_bin.zip解压到任意目录(如D:\Java\jdk-21)
- 按照上述方法设置JAVA_HOME和Path变量
- 这种方式的优点是:
- 不需要管理员权限
- 可以轻松移动或复制JDK目录
- 方便多版本共存
3. macOS系统安装JDK21
3.1 使用PKG安装程序
对于大多数macOS用户,推荐使用.pkg安装程序:
- 双击下载的jdk-21_macos-x64_bin.pkg(Intel芯片)或jdk-21_macos-aarch64_bin.pkg(Apple芯片)
- 按照向导完成安装,默认路径为/Library/Java/JavaVirtualMachines/jdk-21.jdk
安装完成后,终端会自动识别java命令。验证安装:
bash复制/usr/libexec/java_home -V # 查看已安装的JDK
java -version
3.2 手动配置环境变量
虽然macOS通常不需要额外配置,但如果你想明确指定JDK21:
- 编辑~/.zshrc(或~/.bash_profile)文件:
bash复制export JAVA_HOME=$(/usr/libexec/java_home -v 21) export PATH=$JAVA_HOME/bin:$PATH - 使配置生效:
bash复制source ~/.zshrc
3.3 使用Homebrew安装
对于习惯使用包管理的开发者:
bash复制brew tap homebrew/cask-versions
brew install --cask temurin21 # 或使用zulu21等其他发行版
Homebrew会自动处理路径配置,安装后验证:
bash复制brew info temurin21
java -version
4. Linux系统安装JDK21
4.1 使用包管理器安装
对于基于Debian的系统(Ubuntu等):
bash复制sudo apt update
sudo apt install openjdk-21-jdk
对于基于RPM的系统(CentOS/RHEL等):
bash复制sudo yum install java-21-openjdk-devel
4.2 手动安装.tar.gz包
- 下载jdk-21_linux-x64_bin.tar.gz
- 解压到/opt目录:
bash复制sudo tar -xzf jdk-21_linux-x64_bin.tar.gz -C /opt - 配置环境变量(编辑~/.bashrc或/etc/profile):
bash复制export JAVA_HOME=/opt/jdk-21 export PATH=$JAVA_HOME/bin:$PATH - 更新替代系统:
bash复制sudo update-alternatives --install "/usr/bin/java" "java" "$JAVA_HOME/bin/java" 1 sudo update-alternatives --install "/usr/bin/javac" "javac" "$JAVA_HOME/bin/javac" 1
4.3 验证安装
bash复制java -version
which java # 应指向/opt/jdk-21/bin/java
5. 多版本JDK管理
实际开发中经常需要切换不同JDK版本,以下是几种管理方案:
5.1 Windows下的版本切换
- 安装多个JDK版本到不同目录
- 通过修改JAVA_HOME和Path变量来切换
- 或者使用第三方工具如JEnv for Windows
5.2 macOS/Linux使用jEnv
- 安装jEnv:
bash复制brew install jenv # macOS git clone https://github.com/jenv/jenv.git ~/.jenv # Linux - 配置shell:
bash复制echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc - 添加JDK:
bash复制
jenv add /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home jenv add /path/to/jdk17 - 切换版本:
bash复制jenv global 21 # 全局使用JDK21 jenv local 17 # 当前目录使用JDK17
5.3 SDKMAN(跨平台)
bash复制curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 21.0.2-tem
sdk use java 21.0.2-tem
6. 常见问题排查
6.1 'java'不是内部或外部命令
这通常表示Path配置有问题:
- 检查JAVA_HOME是否指向正确的JDK目录
- 确认Path中包含%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(macOS/Linux)
- 确保使用的是新打开的命令行窗口
6.2 版本显示不正确
如果显示的Java版本不是你刚安装的JDK21:
- 检查PATH环境变量的顺序,JDK21的路径应该在前面
- 在Linux/macOS上使用
which java查看实际调用的Java路径 - 使用
update-alternatives --config java(Linux)或jenv versions调整优先级
6.3 macOS Gatekeeper阻止安装
如果遇到"无法验证开发者"的警告:
- 右键点击.pkg文件 → 打开 → 仍要打开
- 或在终端执行:
bash复制sudo spctl --master-disable
7. JDK21新特性速览
虽然本文主要关注安装配置,但了解一些关键新特性有助于激发学习兴趣:
7.1 虚拟线程(正式版)
java复制try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
IntStream.range(0, 10_000).forEach(i -> {
executor.submit(() -> {
Thread.sleep(Duration.ofSeconds(1));
return i;
});
});
}
7.2 序列化集合
java复制List<String> list = List.of("a", "b", "c");
List<String> copy = Serialization.roundtrip(list);
7.3 字符串模板(预览)
java复制String name = "Joan";
String info = STR."My name is \{name}";
8. 开发环境集成
8.1 IntelliJ IDEA配置
- 打开File → Project Structure → SDKs
- 点击"+" → JDK,选择JDK21安装目录
- 在Project设置中选择JDK21作为项目SDK
8.2 Eclipse配置
- 打开Window → Preferences → Java → Installed JREs
- 点击Add → Standard VM,选择JDK21目录
- 勾选新添加的JRE作为默认
8.3 Visual Studio Code
- 安装Java Extension Pack
- 打开命令面板(Ctrl+Shift+P)→ "Java: Configure Java Runtime"
- 点击"+"添加JDK21路径
9. 性能调优建议
安装完成后,可以考虑以下优化:
9.1 JVM内存设置
bash复制java -Xms512m -Xmx2g -XX:MaxMetaspaceSize=512m YourApp
9.2 启用ZGC(低延迟垃圾回收器)
bash复制java -XX:+UseZGC YourApp
9.3 使用jemalloc(Linux)
bash复制export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
java YourApp
10. 卸载JDK21
如果需要卸载:
10.1 Windows
- 控制面板 → 程序和功能 → 卸载Java 21
- 或手动删除安装目录和环境变量
10.2 macOS
bash复制sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-21.jdk
10.3 Linux
bash复制sudo apt remove openjdk-21-jdk # Debian
sudo yum remove java-21-openjdk # RHEL
