亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Ubuntu Linux 安装 Oracle JDK 完整指南:卸载 OpenJDK、配置环境变量、Alternatives 切换

前言

Ubuntu 默认预装 OpenJDK,但部分企业应用、商业中间件、旧版构建脚本强制要求 Oracle JDK (含商业特性、字体渲染、加密策略差异)。本指南演示在 Ubuntu 20.04/22.04/24.04 LTS 上彻底卸载 OpenJDK、下载安装 Oracle JDK (tar.gz)、配置系统级环境变量、注册 Alternatives 优先级、验证生效全流程。

步骤 1:彻底清理预装 OpenJDK

# 查看已安装 OpenJDK 包
dpkg -l | grep -i openjdk

# 完全卸载 (含配置文件)
sudo apt-get purge openjdk-*
sudo apt-get autoremove --purge
sudo apt-get autoclean

验证清理:java -version 应提示「command not found」。

步骤 2:确认系统架构

file /sbin/init
# 输出含 "x86_64" → 64 位 (下载 x64)
# 输出含 "i386"/"i686" → 32 位 (下载 x86)

现代服务器/桌面均为 64 位,下载 Linux x64 tar.gz 包。

步骤 3:下载 Oracle JDK

  1. 访问 Oracle Java SE Downloads
  2. 接受许可协议 (Oracle OTN License)
  3. 选择 Linux x64 → tar.gz (如 jdk-21_linux-x64_bin.tar.gz 或 JDK 8/11/17 对应版本)
  4. 登录 Oracle Account 下载 (或使用 wget --header "Cookie: oraclelicense=accept-securebackup-cookie" URL 直接下载)

下载文件默认位于 ~/Downloads/。

步骤 4:解压安装到标准目录

cd ~/Downloads
sudo mkdir -p /usr/lib/jvm
sudo tar -xvf jdk-21_linux-x64_bin.tar.gz -C /usr/lib/jvm
# 解压后目录名如 jdk-21.0.2,建议重命名便于管理
sudo mv /usr/lib/jvm/jdk-21.0.2 /usr/lib/jvm/java-21-oracle

步骤 5:配置系统级环境变量 (/etc/profile)

sudo nano /etc/profile

在文件末尾追加 (根据实际版本调整路径):

# Oracle JDK 环境变量
export JAVA_HOME=/usr/lib/jvm/java-21-oracle
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

保存退出 (Ctrl+O, Enter, Ctrl+X),然后立即生效:

source /etc/profile

步骤 6:注册 Alternatives 系统 (多版本切换核心)

Ubuntu/Debian 使用 update-alternatives 管理命令链接,实现多 JDK 无缝切换。

# 注册 java、javac、javaws、jar、javadoc 等核心命令
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-21-oracle/bin/java" 2000
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-21-oracle/bin/javac" 2000
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/java-21-oracle/bin/javaws" 2000
sudo update-alternatives --install "/usr/bin/jar" "jar" "/usr/lib/jvm/java-21-oracle/bin/jar" 2000
sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/java-21-oracle/bin/javadoc" 2000

# 设为默认 (优先级 2000 通常最高)
sudo update-alternatives --set java "/usr/lib/jvm/java-21-oracle/bin/java"
sudo update-alternatives --set javac "/usr/lib/jvm/java-21-oracle/bin/javac"
sudo update-alternatives --set javaws "/usr/lib/jvm/java-21-oracle/bin/javaws"
sudo update-alternatives --set jar "/usr/lib/jvm/java-21-oracle/bin/jar"
sudo update-alternatives --set javadoc "/usr/lib/jvm/java-21-oracle/bin/javadoc"

优先级说明:数字越大优先级越高。若已有 OpenJDK (优先级 1111),设 2000 即可自动成为默认。

步骤 7:验证安装与切换测试

# 验证版本
java -version
javac -version

# 查看 alternatives 状态
update-alternatives --display java
update-alternatives --display javac

# 交互式切换 (如需回退 OpenJDK)
sudo update-alternatives --config java
# 输入编号选择版本

预期输出 (JDK 21 示例):

java version "21.0.2" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 21.0.2+13-LTS-58)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.2+13-LTS-58, mixed mode, sharing)

步骤 8:配置桌面/IDE 集成 (可选)

进阶:安装多版本 Oracle JDK 并自由切换

# 追加安装 JDK 17
sudo tar -xvf jdk-17_linux-x64_bin.tar.gz -C /usr/lib/jvm
sudo mv /usr/lib/jvm/jdk-17.0.10 /usr/lib/jvm/java-17-oracle

# 注册 alternatives (优先级 1700 低于 21 的 2000)
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-17-oracle/bin/java" 1700
# ... 同理注册 javac/jar 等

# 切换至 JDK 17
sudo update-alternatives --set java "/usr/lib/jvm/java-17-oracle/bin/java"
# 或交互式选择
sudo update-alternatives --config java

卸载 Oracle JDK

# 移除 alternatives 注册
sudo update-alternatives --remove java "/usr/lib/jvm/java-21-oracle/bin/java"
sudo update-alternatives --remove javac "/usr/lib/jvm/java-21-oracle/bin/javac"
# ... 移除所有已注册命令

# 删除安装目录
sudo rm -rf /usr/lib/jvm/java-21-oracle

# 清理 /etc/profile 中的环境变量行
sudo nano /etc/profile  # 删除 JAVA_HOME/PATH/CLASSPATH 相关行
source /etc/profile

替代方案:OpenJDK 维护版本 (推荐生产环境)

Oracle JDK 需商业授权 (Java SE Subscription) 才能获得长期安全更新。生产环境强烈建议使用免费长期维护的 OpenJDK 发行版:

发行版维护周期安装命令 (Ubuntu)特色
Eclipse Temurin (Adoptium)8/11/17/21 LTS 至 2026/2029/2031+sudo apt install -y temurin-21-jdk (需添加 Adoptium 源)社区中立、TCK 认证、无商业绑定
Azul Zulu8/11/17/21 LTS 长期sudo apt install -y zulu21-jdk (需添加 Azul 源)商业支持可选、ARM/x86 全架构
Amazon Corretto8/11/17/21 LTS 免费长期sudo apt install -y java-21-amazon-corretto-jdk (需添加 Corretto 源)AWS 生产验证、性能调优补丁
Microsoft Build of OpenJDK11/17/21 LTSsudo apt install -y microsoft-jdk-21 (需添加 Microsoft 源)Azure 优化、ARM64 原生

添加第三方源通用步骤:

# 以 Temurin 为例
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb jammy main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update && sudo apt install temurin-21-jdk

总结

在 Ubuntu 上安装 Oracle JDK 核心步骤:清理 OpenJDK → 下载 tar.gz → 解压至 /usr/lib/jvm → 配置 /etc/profile → 注册 Alternatives 高优先级 → 验证版本。掌握 update-alternatives 可实现多 JDK 秒级切换。生产环务必评估 Oracle JDK 授权成本,优先考虑 Temurin/Zulu/Corretto 等免费 LTS 发行版。

java

  1. 装卸平台安装实战指南:Koke专业团队的标准化交付流程
  2. Java EE应用部署Microsoft Azure全流程实战指南
  3. Google Cloud部署WordPress全流程实战:从实例创建到域名SSL配置
  4. Windows 上安装 Dev-C++:分步指南
  5. 在 Windows 上安装 Visual Studio 2019 Community 版进行 C# 开发
  6. 精通 Java 输入输出:打印、读取与格式化数据
  7. Java 对象数组创建:分步指南
  8. Java 生成随机数实战:Random 与 Math.random 详解
  9. Java BufferedReader 读取文件:实战指南与示例
  10. Java 中 char 与 String 相互转换:实用示例与最佳实践
  11. Java 递归反转字符串:原理、代码实现与性能分析
  12. Java 9 模块系统:链接时、自定义运行时镜像与实战