在 CentOS 上更新 Java 的推荐流程
一 准备与检查
- 查看系统版本与当前 Java 版本:
- 查看系统:cat /etc/centos-release
- 查看 Java:java -version、javac -version
- 列出已安装的 OpenJDK 包:rpm -qa | grep java
- 包管理工具选择:
- CentOS 7:优先使用 yum
- CentOS 8/Stream:优先使用 dnf(yum 多为兼容别名)
二 方式一 使用包管理器安装或升级 OpenJDK(推荐)
- 安装/升级到指定版本(示例为 OpenJDK 11 开发包):
- CentOS 7:sudo yum install -y java-11-openjdk-devel
- CentOS 8/Stream:sudo dnf install -y java-11-openjdk-devel
- 如需从旧版本切换到新版本,可先卸载旧包(谨慎,可能影响依赖):
- 示例:sudo yum remove -y java-1.8.0-openjdk*
- 验证:java -version、javac -version
- 说明:这是最简便、可随系统仓库更新的方式,适合大多数场景。
三 方式二 手动安装 Oracle JDK 或压缩包并配置环境
- 准备与安装:
- 下载 JDK(.tar.gz 或 .rpm) 并上传至服务器
- 解压到统一目录(示例:/usr/lib/jvm):
- sudo mkdir -p /usr/lib/jvm
- sudo tar -zxvf jdk--linux-x64_bin.tar.gz -C /usr/lib/jvm
- 或安装 RPM:sudo rpm -ivh jdk--linux-x64.rpm
- 配置环境变量(全局推荐 /etc/profile.d/java.sh):
- 新建或编辑:sudo vi /etc/profile.d/java.sh
- 写入(路径按实际调整):
- export JAVA_HOME=/usr/lib/jvm/jdk-
- export PATH=$JAVA_HOME/bin:$PATH
- 使生效:source /etc/profile.d/java.sh
- 验证:java -version、javac -version
- 说明:适合需要特定厂商/版本的场景,便于多版本并存与精确控制。
四 多版本共存与切换
- 使用 update-alternatives 注册与切换(系统级、可回退):
- 注册 Java 与编译器:
- sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-/bin/java 100
- sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-/bin/javac 100
- 交互选择默认版本:sudo update-alternatives --config java(同理可配置 javac)
- 用户级快速切换(可选):
- 在 ~/.bash_profile 或 ~/.bashrc 中设置别名或导出不同 JAVA_HOME,按需切换
- 说明:该方式便于在同一台机器维护 Java 8/11/17/21 等多版本并快速切换。
五 常见问题与建议
- 只替换运行时还是开发环境:开发请安装 -devel 包(含 javac);仅运行可只装运行时包
- 切换后验证两项:java -version 与 javac -version 输出应一致
- 避免冲突:不要同时在全局 PATH 中硬编码多个 JAVA_HOME;优先用 update-alternatives 或 /etc/profile.d/ 管理
- 安全与支持:生产环境优先选择 LTS 版本,并定期更新以获得安全补丁