Ubuntu 上 Oracle Java 版本选择指南
一 选择原则
- 优先选择 LTS 版本:当前主线 LTS 为 Java 21,同时 Java 17 仍被广泛使用;新项目建议直接选 Java 21 LTS。避免使用已停止维护的旧版本(如 Java 8/11 已超出免费公共更新周期,除非有强依赖)。
- 明确需求再选发行方:多数场景 OpenJDK 已能满足;若应用明确依赖 Oracle JDK 的某些特性/认证(如部分企业中间件、老项目编译链),再选择 Oracle 发行包。
- 合规与许可:自 2019-04-16 起,Oracle JDK 许可变更,个人/开发使用免费,部分商业用途需付费授权,选型与部署前务必确认贵方许可条款。
- 版本共存与切换:Ubuntu 支持 多版本并存,用 update-alternatives 管理默认版本与切换,便于不同项目按需使用不同 JDK。
二 版本对照与适配建议
| 使用场景 |
推荐 Java 版本 |
发行方建议 |
说明 |
| 新项目、长期维护 |
Java 21 LTS |
OpenJDK 或 Oracle JDK |
新 LTS,生态已成熟,适合作为默认选择 |
| 现有系统稳定演进 |
Java 17 LTS |
OpenJDK 或 Oracle JDK |
仍被广泛采用,升级成本相对可控 |
| 遗留系统/老项目绑定 |
Java 8(如必须) |
视兼容性而定 |
已超出免费公共更新;若需 Oracle 特性再选 Oracle,否则优先 OpenJDK 8 |
| 特定厂商/产品要求 |
依产品说明 |
可能需 Oracle JDK |
以厂商兼容矩阵为准,避免盲目更换发行方 |
说明:Ubuntu 22.04 等发行版官方源通常提供 OpenJDK 11/17/21,而 Oracle JDK 建议从官网获取并手动安装;如需多版本共存,使用 update-alternatives 进行切换。
三 安装与切换步骤(简版)
- 安装 OpenJDK(推荐优先):sudo apt update && sudo apt install openjdk-21-jdk(或 openjdk-17-jdk)。
- 安装 Oracle JDK(当确需时):
- 从 Oracle 官网下载 Linux .tar.gz;2) 解压至 /usr/lib/jvm;3) 注册到 alternatives:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-21.0.x/bin/java 1000
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-21.0.x/bin/javac 1000
- 切换版本:sudo update-alternatives --config java(同理可配置 javac)。
- 设置 JAVA_HOME(可选,开发常用):在 /etc/environment 添加 JAVA_HOME=/usr/lib/jvm/jdk-21.0.x,执行 source /etc/environment 生效。
四 常见坑与建议
- 不要依赖已废弃的 webupd8 PPA 安装 Oracle JDK(该方式已不再维护,现代 Ubuntu 版本上常不可用或存在风险)。
- 多版本共存时,务必同时切换 java 与 javac,并为各版本设置合适的 alternatives 优先级,避免构建/运行不一致。
- 生产环境建议以 OpenJDK 为主流选择;如必须使用 Oracle JDK,请提前完成 许可合规 评估与成本核算。
五 名词澄清
- 本指南讨论的是 Oracle Java(JDK/JRE) 在 Ubuntu 的版本选择与安装。若你指的是 Oracle Database(如 19c/23ai) 在 Ubuntu 的部署,这是另一类问题,涉及创建用户/目录、内核参数、安装包与图形环境准备等,步骤与 Java 版本选择完全不同。