macOS卸载旧JDK需三步闭环:先删/Library/Java/JavaVirtualMachines下对应.jdk及插件,再清缓存、环境变量和shell配置,最后重配JAVA_HOME并验证java -version与IDE SDK。

macOS卸载旧JDK后,不能只删文件夹就完事——残留的注册缓存、环境变量和IDE配置会让新版本“看不见”或“用不上”。关键在清理+验证+重配三步闭环。
彻底删除JDK物理文件与插件
先确认已安装的JDK列表:
- 终端执行 /usr/libexec/java_home -V,记录所有显示的版本路径
- 再运行 ls /Library/Java/JavaVirtualMachines/,核对实际目录名(如
jdk-17.jdk、jdk-21.0.2.jdk)
针对要卸载的旧版本(比如 jdk-17.jdk),执行:
- sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-17.jdk
- 若曾装过 Java 8 或更早版本,顺手清理遗留组件:
sudo rm -rf /Library/Internet\Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefpane
清除缓存与环境变量残留
即使目录删了,系统仍可能“记住”旧路径:
- 运行 /usr/libexec/java_home -V 再次检查——如果旧版本还在输出里,说明缓存未刷新
- 重启终端,或手动刷新:source ~/.zshrc(或 source ~/.bash_profile,取决于你用的 shell)
- 检查 shell 配置文件是否硬编码旧路径:
grep JAVA_HOME ~/.zshrc ~/.bash_profile 2>/dev/null
若有类似export JAVA_HOME=$(/usr/libexec/java_home -v 17)的行,删掉或注释掉
安装新JDK并正确配置环境变量
推荐使用 Oracle 官方 .dmg 或 .tar.gz 包(注意芯片匹配:Intel 选 x64,M 系列选 aarch64):
- 双击 .dmg 安装,或解压 .tar.gz 到
~/Library/Java/JavaVirtualMachines/(非系统级路径,避免权限问题) - 安装后验证路径:/usr/libexec/java_home -V 应出现新版本(如
17.0.2或21.0.3) - 编辑 ~/.zshrc(macOS Catalina 及以后默认 zsh):
export JAVA_HOME=$(/usr/libexec/java_home -v 21)export PATH=$JAVA_HOME/bin:$PATH - 保存后执行 source ~/.zshrc,再验证:
echo $JAVA_HOME → 应输出类似/Users/xxx/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
java -version 和 javac -version → 显示新版本号
同步更新开发工具中的JDK引用
系统级切换成功 ≠ IDE 自动跟进:
-
IntelliJ IDEA:File → Project Structure → Project → Project SDK → 点击“+”添加 JDK → 选择
Contents/Home目录;同时检查 Modules → Language level 是否匹配 -
Eclipse:Preferences → Java → Installed JREs → Add… → Standard VM → Directory 选新 JDK 根目录(即
Contents/Home上一级) -
Maven/Gradle:检查
~/.m2/settings.xml或项目gradle.properties中是否硬编码了java.home,如有则更新为新路径


















