在 Ubuntu24.04 上安装 JDK 21(Java 21)

Ubuntu 24.04上安装 JDK 21 (Java 21)有几种方式:使用 apt 安装、使用 Oracle 官方包、或手动安装(tar.gz)。下面我会一步步讲清楚三种常用方法.


🧩 方法一:使用 Ubuntu 官方 apt 源安装(最简单)

1. 更新软件源

复制代码
sudo apt update

2. 安装 OpenJDK 21

复制代码
sudo apt install openjdk-21-jdk -y

3. 验证安装

复制代码
java -version

输出示例:

复制代码
openjdk version "21" 2023-09-19
OpenJDK Runtime Environment (build 21+35-Ubuntu-...)
OpenJDK 64-Bit Server VM (build 21+35-Ubuntu-, mixed mode)

优点 :最方便、自动配置环境变量

⚠️ 缺点:版本可能稍落后于 Oracle 官方发布


🧰 方法二:安装 Oracle JDK 21(官方原版)

如果你需要 Oracle 原版 JDK(如运行某些特定商业软件),可以手动安装:

1. 下载 Oracle JDK 21

到 Oracle 官网下载 .tar.gz

👉 https://www.oracle.com/java/technologies/downloads/

例如下载:

复制代码
jdk-21_linux-x64_bin.tar.gz

2. 解压并放到合适目录

复制代码
sudo mkdir -p /usr/lib/jvm
sudo tar -xzf jdk-21_linux-x64_bin.tar.gz -C /usr/lib/jvm/

解压后路径一般为 /usr/lib/jvm/jdk-21

3. 配置环境变量

执行:

复制代码
sudo nano /etc/profile.d/jdk21.sh

加入以下内容:

复制代码
export JAVA_HOME=/usr/lib/jvm/jdk-21
export PATH=$JAVA_HOME/bin:$PATH

保存退出后执行:

复制代码
source /etc/profile.d/jdk21.sh

4. 验证安装

复制代码
java -version

⚙️ 方法三:使用 SDKMAN 安装(适合多版本共存)

如果你想轻松切换 JDK 版本(比如 JDK 17、21共存),推荐使用 SDKMAN

1. 安装 SDKMAN

复制代码
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

2. 安装 JDK 21

复制代码
sdk install java 21-open

3. 验证

复制代码
java -version

优点 :适合开发环境、可快速切换版本

⚠️ 缺点:不适合生产服务器环境


🔍 查看与切换 JDK 版本

如果系统有多个 JDK,可以运行:

复制代码
sudo update-alternatives --config java

然后选择对应的 JDK 21 路径。

通过sudo apt install openjdk-21-jdk -y安装的JDK,安装在哪里?

安装 JDK 时,系统会自动把它安装到 /usr/lib/jvm/ 目录下。


🧭 一、安装位置(标准路径)

一般情况下,安装路径是:

复制代码
/usr/lib/jvm/java-21-openjdk-amd64/

你可以用以下命令确认:

复制代码
ls -l /usr/lib/jvm/

输出示例:

复制代码
drwxr-xr-x 8 root root 4096 Oct 20 14:02 java-17-openjdk-amd64
drwxr-xr-x 8 root root 4096 Oct 20 14:15 java-21-openjdk-amd64

✅ 所以你的 JDK 21 实际路径是:cd

复制代码
/usr/lib/jvm/java-21-openjdk-amd64

🧩 二、查看 JAVA_HOME

Ubuntu 自带的 update-java-alternatives 工具可以帮你确认或切换默认 JDK:

复制代码
sudo update-java-alternatives -l

示例输出:

复制代码
java-17-openjdk-amd64  1711  /usr/lib/jvm/java-17-openjdk-amd64
java-21-openjdk-amd64  2100  /usr/lib/jvm/java-21-openjdk-amd64

你可以看到每个版本对应的安装路径。


⚙️ 三、设置 JAVA_HOME(如果你想显式指定)

在你的 shell 或部署脚本中加入:

复制代码
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

验证:

复制代码
echo $JAVA_HOME
java -version

🧱 四、默认 Java 命令路径

虽然 JDK 安装在 /usr/lib/jvm 下,系统会在 /usr/bin/ 里建立一个符号链接:

复制代码
ls -l /usr/bin/java

输出示例:

复制代码
/usr/bin/java -> /etc/alternatives/java

/etc/alternatives/java 又指向:

复制代码
/usr/lib/jvm/java-21-openjdk-amd64/bin/java

这就是 Ubuntu 的 "alternatives" 管理机制

如果你有多个版本,可以通过:

复制代码
sudo update-alternatives --config java

切换默认 JDK。


✅ 总结

项目 路径
JDK 安装目录 /usr/lib/jvm/java-21-openjdk-amd64/
Java 可执行文件 /usr/lib/jvm/java-21-openjdk-amd64/bin/java
默认 java 命令(符号链接) /usr/bin/java
设置 JAVA_HOME export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64

相关推荐
bcbobo21cn8 小时前
C# byte类型和byte数组的使用
开发语言·c#·字节数组·byte类型
计算机安禾8 小时前
【C语言程序设计】第37篇:链表数据结构(一):单向链表的实现
c语言·开发语言·数据结构·c++·算法·链表·蓝桥杯
阿贵---9 小时前
C++构建缓存加速
开发语言·c++·算法
没有bug.的程序员9 小时前
Serverless 弹性扩容引发的全线熔断:Spring Boot 启动耗时从 1s 压缩至 0.3s 的物理级绞杀
java·spring boot·kubernetes·serverless·扩容·线上
紫丁香9 小时前
pytest_自动化测试3
开发语言·python·功能测试·单元测试·集成测试·pytest
bearpping9 小时前
java进阶知识点
java·开发语言
杰杰7989 小时前
Python面向对象——类的魔法方法
开发语言·python
Joker Zxc9 小时前
【前端基础(Javascript部分)】6、用JavaScript的递归函数和for循环,计算斐波那契数列的第 n 项值
开发语言·前端·javascript
独自破碎E9 小时前
【面试真题拆解】你知道ThreadLocal是什么吗
java·jvm·面试
kkkkatoq9 小时前
JAVA中的IO操作
java·开发语言