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