You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已安装OpenJDK 15但$JAVA_HOME仍指向Oracle JDK 11,如何彻底清理Oracle JDK 11并配置正确Java环境?

问题梳理

你在Xubuntu 20.04上曾安装过Oracle JDK 11,现在已经删除了能找到的相关文件,切换到OpenJDK 15并配置了系统级的环境变量(/etc/profile.d下的文件都指向OpenJDK 15),但echo $JAVA_HOME仍然返回/usr/lib/jvm/java-11-oracle,系统似乎还能识别到旧的Oracle JDK,需要彻底清理并确保环境配置正确,为即将开始的Java课程做好准备。

分步排查与解决

咱们一步步来搞定这个残留问题:

1. 先刷新当前shell的环境变量缓存

修改系统配置文件后,当前打开的终端可能还在使用旧的环境变量缓存,先执行下面的命令让新配置生效:

source /etc/profile

之后再运行echo $JAVA_HOME看看是否变化,如果还是不对,试试重启终端或者重新登录系统——有时候旧的环境变量会在当前shell会话中残留,必须重启才能彻底清除。

2. 检查用户级别的配置文件

系统级的/etc/profile.d配置可能被用户个人的配置文件覆盖,你需要检查以下几个常用的用户配置文件:

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.profile

打开这些文件,搜索是否有export JAVA_HOME=/usr/lib/jvm/java-11-oracle之类的行,如果有,把它改成指向OpenJDK 15的路径(比如/usr/lib/jvm/java-15-openjdk-amd64,根据你实际的安装路径调整),保存后重新加载配置:

source ~/.bashrc

3. 确认update-alternatives的配置是否完全更新

虽然你说已经切换到OpenJDK 15,但咱们再仔细确认一下:
首先列出当前java和javac的所有备选项:

update-alternatives --list java
update-alternatives --list javac

如果输出里还有/usr/lib/jvm/java-11-oracle/bin/java或javac的条目,用下面的命令移除它们:

# 移除java的Oracle备选项
update-alternatives --remove java /usr/lib/jvm/java-11-oracle/bin/java
# 移除javac的Oracle备选项
update-alternatives --remove javac /usr/lib/jvm/java-11-oracle/bin/javac

然后重新配置默认的java和javac:

# 替换成你OpenJDK 15的实际路径
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-15-openjdk-amd64/bin/java 100
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-15-openjdk-amd64/bin/javac 100
# 选择默认版本(按提示输入对应OpenJDK 15的编号)
update-alternatives --config java
update-alternatives --config javac

4. 查找并删除残留的Oracle JDK文件

可能还有一些漏删的文件或符号链接,用find命令全系统搜索:

find / -name "java-11-oracle" 2>/dev/null

这个命令会遍历系统查找所有包含java-11-oracle的文件/文件夹,输出的结果如果还有残留,用rm -rf彻底删除(注意确认路径,别误删其他文件)。

5. 检查jdk_home.sh的逻辑是否正常

你的/etc/profile.d/jdk_home.sh里用了动态获取JAVA_HOME的方式:

export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

先确认这个动态获取的路径是否正确,执行:

readlink -f /usr/bin/javac

如果输出还是指向Oracle JDK 11的路径,说明update-alternatives的javac配置没改对,回到步骤3重新配置即可。

6. 最终验证

完成上面的步骤后,重启终端,执行以下命令确认环境是否正确:

echo $JAVA_HOME
java -version
javac -version

如果三个命令都指向OpenJDK 15,那你的Java环境就彻底配置好了!

内容的提问来源于stack exchange,提问作者Benjamin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 07:52:42