卸载JDK需四步彻底清理:先查清所有JDK版本及路径(Windows用where java和reg query,macOS用java_home -V,Linux用dpkg/rpm或手动检查);再删安装目录、注册表对应子项(非整个JavaSoft)、环境变量及IDE/构建工具配置;最后重设JAVA_HOME和PATH并新开终端验证。
卸载 jdk 不能只靠控制面板点几下就完事。残留的安装目录、注册表项、环境变量和 ide 配置,任何一个没清干净,都可能导致新 jdk 不被识别、java -version 显示旧版本、ide 报 “no jdk specified” 或 maven 编译失败。
先摸清系统里到底装了哪些 JDK
别急着删,先搞清楚现状:
- Windows:运行
where java查所有可执行路径;用reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit" /s看注册表登记的所有 JDK 版本及对应JavaHome - macOS:终端执行
/usr/libexec/java_home -V,它会列出所有已注册的 JDK(包括没在 PATH 里的);再ls /Library/Java/JavaVirtualMachines/确认物理目录 - Linux(deb/rpm):用
dpkg -l | grep jdk或rpm -qa | grep java;手动解压安装的则检查/usr/lib/jvm、/opt/java或家目录下的jdk-*文件夹 - 统一检查:
echo %JAVA_HOME%(Windows)或echo $JAVA_HOME(macOS/Linux),确认该路径是否真实存在且匹配当前java -version输出
Windows:删目录 + 清注册表 + 重设环境变量
控制面板卸载只是第一步,真正容易出问题的是后面三步:
- 手动删除每个 JDK 安装目录,常见位置如
C:\Program Files\Java\jdk-xx、C:\Program Files (x86)\Java\jdk-xx(哪怕卸载程序说已删,也进去确认是否为空文件夹) - 打开注册表编辑器(
regedit),精准删除:HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK\{版本号}HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\{版本号}
⚠️ 不要直接删整个JavaSoft项,只删对应旧版本的子键 - 进「系统属性 → 高级 → 环境变量」:
删除旧的JAVA_HOME变量
在Path中移除所有含jdk-xx\bin的条目(包括绝对路径和%JAVA_HOME%\bin)
新建JAVA_HOME指向你刚装的新 JDK 根目录(例如C:\Program Files\Java\jdk-21,不含\bin)
在Path中只加一条:%JAVA_HOME%\bin
macOS 和 Linux:按来源分类清理
不同安装方式,卸载逻辑完全不同:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- macOS 原生 .pkg 安装(Oracle/Adoptium):
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-*.jdk
删完后务必运行/usr/libexec/java_home -V验证是否已消失 - macOS Homebrew 安装:
先查brew list | grep openjdk,再brew uninstall openjdk@17(版本号需匹配)
别只删目录,否则brew doctor会报错 - Linux rpm 包安装:
rpm -qa | grep java找包名 →rpm -e --nodeps [包名]
deb 系统则用apt list --installed | grep openjdk→sudo apt remove [包名] - Linux tar.gz 手动解压:
直接rm -rf /opt/jdk-17或你自定义的路径
检查/etc/profile、~/.bashrc、~/.zshrc,删掉所有export JAVA_HOME=...行,然后source ~/.zshrc生效
别忘了 IDE 和构建工具的“记忆”
它们不会随系统卸载自动更新配置,必须手动干预:
立即学习“Java免费学习笔记(深入)”;
- Eclipse:打开 Preferences → Java → Installed JREs,删掉所有指向已删除路径的 JDK 条目
- IntelliJ IDEA:进入 File → Project Structure → SDKs,选中无效 SDK 点减号删除
- Maven/Gradle:检查项目根目录下的
mvnw或gradlew脚本是否硬编码了旧 JDK 路径;全局配置如~/.m2/settings.xml中的toolchains.xml也可能引用旧版本 - 验证最终效果:新开终端(不是已打开的窗口!),运行
java -version、javac -version、mvn -v,三者输出应一致且指向你期望的新 JDK

















