Ubuntu 24.04 生产环境安装 JDK 文档
一、版本选择(生产环境推荐)
生产环境优先选择 OpenJDK(开源免费、无商用授权限制),版本推荐:
- OpenJDK 8:长期支持(LTS),适配多数老旧业务系统;
- OpenJDK 11/17:较新 LTS 版本,支持更多特性(按需选择)。
本文以 OpenJDK 8 为例演示安装流程。
二、前置准备:解决源访问问题
默认
cn.archive.ubuntu.com 可能因网络 / IPv6 问题无法访问,需先切换国内源并配置网络:步骤 1:备份原有源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
步骤 2:替换为国内源(以阿里云为例)
sudo tee /etc/apt/sources.list <<-'EOF'
# 阿里云 Ubuntu 24.04 (Noble Numbat) 源
deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
EOF
步骤 3:配置 apt 强制使用 IPv4(解决 IPv6 不可达问题)
sudo tee /etc/apt/apt.conf.d/99force-ipv4 <<-'EOF'
Acquire::ForceIPv4 "true";
EOF
步骤 4:更新源缓存
sudo apt update && sudo apt upgrade -y
三、安装 OpenJDK
步骤 1:安装 JDK 完整包(含开发工具)
# 安装 OpenJDK 8
sudo apt install openjdk-8-jdk -y
# 安装 OpenJDK 17(推荐开源版本)
sudo apt install -y openjdk-17-jdk
# 验证安装
java -version
# 列出系统中所有已安装的 JDK 路径
ls /usr/lib/jvm/
# 查看 java 命令的备选配置(安装 JDK 17 后不会自动添加到这里)
sudo update-alternatives --list java
# 配置 java 命令的默认版本
sudo update-alternatives --config java
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 自动模式
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 手动模式
2 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1081 手动模式
要维持当前值[*]请按<回车>,或者键入选择的编号:
# 删除编号为1的备选项(根据你的实际编号调整)
sudo update-alternatives --remove java /usr/lib/jvm/java-17-openjdk-amd64/bin/java
# 注册JDK 8(优先级1081)
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081
# 注册JDK 17(优先级1711)
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711
# 查看所有已安装的 openjdk 包
dpkg --list | grep -i openjdk
# 卸载 JDK 17(包名需与实际匹配)
sudo apt remove --purge -y openjdk-17-jdk
# 清理残留依赖
sudo apt autoremove -y
# 查看当前 java 备选配置
sudo update-alternatives --list java
# 删除指定路径的备选(替换为实际残留路径)
sudo update-alternatives --remove java /usr/lib/jvm/java-17-openjdk-amd64/bin/java
步骤 2:验证安装结果
# 检查 Java 版本
java -version
# 检查编译器版本(开发环境需验证)
javac -version
预期输出:
openjdk version "1.8.0_402"
OpenJDK Runtime Environment (build 1.8.0_402-8u402-ga-1~24.04)
OpenJDK 64-Bit Server VM (build 25.402-b08, mixed mode)
四、配置全局环境变量(生产环境规范)
步骤 1:创建环境变量配置文件
sudo vim /etc/profile.d/jdk8.sh
步骤 2:写入配置内容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
步骤 3:生效配置
source /etc/profile.d/jdk8.sh
步骤 4:验证环境变量
echo $JAVA_HOME
# 预期输出:/usr/lib/jvm/java-8-openjdk-amd64
五、多 JDK 版本切换(可选)
若服务器安装了多个 JDK 版本,通过
update-alternatives 管理默认版本:# 配置 java 命令默认版本
sudo update-alternatives --config java
# 配置 javac 命令默认版本
sudo update-alternatives --config javac
根据提示输入对应 JDK 8 的序号,即可切换默认版本。
六、生产环境验证与排障
1. 验证 JDK 可用性
编写测试类
Test.java:public class Test {
public static void main(String[] args) {
System.out.println("JDK 8 安装成功!Java 版本:" + System.getProperty("java.version"));
}
}
编译并运行:
javac Test.java
java Test
# 预期输出:JDK 8 安装成功!Java 版本:1.8.0_402
2. 常见问题排障
- 源访问失败:检查网络连通性(
ping mirrors.aliyun.com),或切换清华源; - 环境变量不生效:重启终端或执行
source /etc/profile; - 版本显示错误:通过
update-alternatives --config java确认默认版本。
七、扩展:安装其他 JDK 版本
若需安装 OpenJDK 11/17,只需替换安装命令:
# 安装 OpenJDK 11
sudo apt install openjdk-11-jdk -y
# 安装 OpenJDK 17
sudo apt install openjdk-17-jdk -y