在 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

相关推荐
喜欢读源码的小白4 小时前
SpringBoot的启动流程原理——小白的魔法引擎探秘
java·开发语言·spring boot·springboot启动原理
白露与泡影4 小时前
BAT 大厂 java高频面试题汇总:JVM+Spring+ 分布式 +tomcat+MyBatis
java·jvm·spring
Han.miracle4 小时前
数据结构——排序的学习(一)
java·数据结构·学习·算法·排序算法
摇滚侠4 小时前
Spring Boot 3零基础教程,WEB 开发 通过配置类代码方式修改静态资源配置 笔记32
java·spring boot·笔记
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ4 小时前
mapper.xml sql动态表查询配置
xml·java·sql
YuanlongWang4 小时前
C# 基础——多态的实现方式
java·c#
夜幽青玄4 小时前
mybatis-plus调用报 org.springframework.dao.DataIntegrityViolationException 错误处理
开发语言·python·mybatis
洲覆4 小时前
Redis 内存淘汰策略
开发语言·数据库·redis·缓存
偶尔贪玩的骑士5 小时前
Kioptrix Level 1渗透测试
linux·开发语言·网络安全·php