
本文详解在 Ubuntu 上通过 Homebrew 安装 Java 后导致 java --version 指向 OpenJDK 20 的问题,提供安全卸载 Homebrew Java、恢复系统默认 JDK 8(Amazon Corretto)的完整操作步骤。
本文详解在 ubuntu 上通过 homebrew 安装 java 后导致 `java --version` 指向 openjdk 20 的问题,提供安全卸载 homebrew java、恢复系统默认 jdk 8(amazon corretto)的完整操作步骤。
Homebrew(尤其是 Linuxbrew)在 Ubuntu 上安装某些工具时,可能自动拉取 java 作为依赖,从而将 java 和 javac 的可执行文件软链接至 /home/linuxbrew/.linuxbrew/bin/ 目录。这会覆盖系统原有的 Java 环境(如您已安装的 Amazon Corretto JDK 8),导致项目因不兼容 JDK 20 而构建失败。
✅ 第一步:卸载 Homebrew 版 Java
直接运行以下命令即可移除 Homebrew 安装的 Java(含 openjdk 公式):
brew uninstall --ignore-dependencies java
⚠️ 注意:--ignore-dependencies 参数用于避免因其他 formula 依赖 Java 而被拒绝卸载;若确认无关键工具依赖此 Java,该选项安全可用。卸载后,/home/linuxbrew/.linuxbrew/bin/java 和 javac 将被删除。
✅ 第二步:显式启用系统 JDK 8
虽然 update-alternatives 显示当前仅注册了 Corretto JDK 8,但因 Homebrew 的 bin 目录通常位于 $PATH 前置位置(如 ~/.linuxbrew/bin 在 PATH 中靠前),系统仍优先调用其 Java。因此需手动调整 PATH 顺序,确保系统 JDK 的 bin 目录优先:
在您的 shell 配置文件中(~/.bashrc 或 ~/.zshrc,根据实际 shell 类型选择)添加以下行:
export PATH="/usr/lib/jvm/java-1.8.0-amazon-corretto/bin:$PATH"
? 提示:可通过 echo $SHELL 确认当前 shell;Zsh 用户请编辑 ~/.zshrc,Bash 用户编辑 ~/.bashrc。
deep-java-review下载Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
✅ 第三步:重载配置并验证
执行以下命令使新 PATH 生效:
source ~/.bashrc # 或 source ~/.zshrc
随后验证环境是否正确切换:
which java # 应输出:/usr/lib/jvm/java-1.8.0-amazon-corretto/bin/java java -version # 应输出类似: # openjdk version "1.8.0_382" # OpenJDK Runtime Environment (Amazon.com, Inc.) (build 1.8.0_382-b05) # OpenJDK 64-Bit Server VM (Amazon.com, Inc.) (build 25.382-b05, mixed mode) javac -version # 同样应显示 1.8.0_xxx
✅ 补充建议(可选但推荐)
- 若希望长期避免 Homebrew 干预 Java 环境,可在 ~/.bashrc 或 ~/.zshrc 中注释或移除可能存在的 export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH" 行(或将其移至 JDK 路径之后);
- 使用 brew doctor 检查 Homebrew 状态,确认无残留 Java 相关警告;
- 对多 JDK 场景,可考虑 sdkman 或 jenv 进行更灵活的版本管理,但本例中直接 PATH 控制已足够轻量可靠。
完成以上步骤后,您的终端将稳定使用 JDK 8,完全满足 Spring Boot 2.x、Maven 3.6 等旧版生态项目的编译与运行需求。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











