跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

CentOS怎么卸载自带的OpenJDK CentOS安装官方Java环境详解

最稳妥方式是用 yum remove 卸载 OpenJDK;java -version 不可靠,应优先执行 yum list installed | grep java 和 rpm -qa | grep -E 'java|openjdk|gcj' 查全已装 Java 包;直接 rm -rf /usr/lib/jvm 会破坏 alternatives 配置并引发 yum 异常。 直接用
yum remove
卸载 OpenJDK 是最稳妥的方式,手动删
/usr/lib/jvm
或硬上
rpm -e --nodeps
容易留残余、触发后续 yum 更新异常,甚至让
alternatives
指向失效路径。 怎么查清楚系统到底装了哪些 Java 包 别只信
java -version
——它可能指向
/etc/alternatives/java
,而那个 symlink 背后可能是早已卸载一半的旧 JVM。真正要盯的是 RPM 包管理器里的记录:
yum list installed | grep java
:优先看这个,列出所有通过 yum 安装的 Java 相关包,包括
java-1.8.0-openjdk
、
java-11-openjdk-headless
等
rpm -qa | grep -E 'java|openjdk|gcj'
:补漏,尤其能抓出早期手动装过、但没进 yum DB 的包(比如某些老版本
java-1.4.2-gcj-compat
)
ls -l /usr/lib/jvm
:确认物理目录是否存在,但注意:空目录 ≠ 已清理干净,RPM 可能只删了 bin 下软链,没动配置项 为什么不能直接
rm -rf /usr/lib/jvm
CentOS 的 OpenJDK 是标准 RPM 包,它的安装行为受
alternatives
系统控制。
/usr/bin/java
实际是
/etc/alternatives/java
的 symlink,后者又指向具体 JVM 的 bin 目录。直接删文件夹会导致:
alternatives --config java
仍显示已删除的路径,选中后执行
java
报错
No such file or directory
下次
yum update
可能自动重装被删掉的包(因为 RPM 数据库里它还“存在”)
javac
、
keytool
等命令消失,但
which java
还有输出,排查时容易误判 安全卸载 OpenJDK 的完整操作链 核心原则:让 yum 主动卸载,再手动收尾残留。以 CentOS 7/8 常见的
java-1.8.0-openjdk
为例: Eclipse导入Android或其他的JAVA项目的正确方法 WORD版 本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看 下载 立即学习 “ Java免费学习笔记(深入) ”; 先试卸载主包:
yum remove java-1.8.0-openjdk*
(加
*
覆盖
-devel
、
-headless
等子包) 若提示依赖冲突(比如
tomcat
显式 Requires),确认无关键服务依赖后,加
--setopt=protected_packages=
绕过保护(慎用) 卸载后立即检查:
alternatives --config java
。如果报
no alternatives for java
,说明 clean;否则运行
alternatives --remove java /path/to/old/jre/bin/java
手动清除 最后验证:
java -version
应报 command not found;
rpm -qa | grep openjdk
应无输出 装 Oracle JDK 或 OpenJDK 二进制包时的关键避坑点 新 JDK 推荐解压部署到
/opt/java
或
/usr/local/java
,而非覆盖
/usr/lib/jvm
—— 后者是 yum 管理区,放手动包容易被误清或权限混乱: 环境变量必须写进
/etc/profile.d/java.sh
(而非直接改
/etc/profile
),这样更模块化,且避免与其他 profile.d 脚本冲突
JAVA_HOME
值必须精确到 JDK 根目录(如
/opt/java/jdk-17.0.2
),不能带
/bin
或结尾斜杠 别漏掉
export PATH=$JAVA_HOME/bin:$PATH
,否则
javac
仍不可用;顺序也很重要——把
$JAVA_HOME/bin
放
$PATH
开头,确保优先命中 改完后用
source /etc/profile.d/java.sh
生效,再用
which java
和
readlink -f $(which java)
双重确认真实路径 最容易被忽略的是 alternatives 状态和
/etc/profile.d/
的加载顺序——哪怕
JAVA_HOME
设对了,如果
/usr/bin/java
还连着旧 alternatives 链,终端里
java
命令就永远不走你配的新 JDK。

相关文章