卸载旧JDK需同步清理安装目录、注册表项、环境变量和用户级缓存四部分,否则新版本不生效;须先用where java、reg query等命令查清现状,再精准删除,最后正确配置JAVA_HOME与Path并更新IDE及构建工具设置。

卸载旧 JDK 不能只靠控制面板点“卸载”,否则新版本极大概率不生效、java -version仍显示旧版、IDE 报“no JDK specified”,甚至 Maven 编译失败。关键在四块同步清理:安装目录、注册表项、环境变量、用户级缓存。
先摸清系统里到底装了几个 JDK
别凭印象删,先查清楚现状:
-
Windows:打开命令提示符,运行
where java查所有java.exe路径;再运行reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit" /s看注册表登记的每个版本和对应JavaHome -
macOS:终端执行
/usr/libexec/java_home -V列出所有已注册 JDK,再用ls /Library/Java/JavaVirtualMachines/核对物理目录 -
Linux(deb/rpm):用
dpkg -l | grep jdk或rpm -qa | grep java;手动解压安装的则检查/usr/lib/jvm、/opt/java或家目录下的jdk-*文件夹
Windows 彻底卸载四步到位
控制面板卸载只是第一步,真正要清的是这四块:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
-
删安装目录:进入
where java输出的每个路径上层目录(如C:\Program Files\Java\jdk-17.0.2),整个文件夹删除;同时检查C:\Program Files (x86)\Java\和C:\Users\[用户名]\AppData\LocalLow\Sun\Java等缓存位置 -
清注册表(精准删):打开
regedit,只删对应旧版本的子项,例如:HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK\{17.0.2}HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\{17.0.2}
⚠️ 不要删整个JavaSoft项,否则会影响其他 JDK 或 JRE -
清环境变量:进「系统属性 → 高级 → 环境变量」,删除系统变量中的
JAVA_HOME;在Path中移除所有含jdk-的绝对路径(如C:\Program Files\Java\jdk-17.0.2\bin)以及%JAVA_HOME%\bin这类引用 -
删系统级残留文件:检查并删除
C:\Windows\System32\java.exe、javaw.exe、javaws.exe—— JDK 安装时会默认复制这三个文件到该目录,不删它们,命令行仍可能调用旧版
重装 JDK 与正确配置环境变量
卸载干净后,再安装新 JDK 并避免常见配置错误:
立即学习“Java免费学习笔记(深入)”;
- 从 Oracle、Eclipse Temurin 或 Amazon Corretto 下载官方安装包,推荐使用
.exe安装器(自动处理部分注册表注册) - 安装路径建议用默认路径(如
C:\Program Files\Java\jdk-21),避免路径含空格或中文 - 配置
JAVA_HOME:变量值填 JDK 根目录(不含\bin),例如C:\Program Files\Java\jdk-21 - 配置
Path:只加一条%JAVA_HOME%\bin,不要重复添加%JAVA_HOME%\jre\bin(现代 JDK 不再自带独立 JRE) - 必须新开一个命令提示符窗口验证:
java -versionjavac -versionecho %JAVA_HOME%
三者都应指向新版本且路径存在
别忘了同步更新开发工具配置
IDE 和构建工具不会自动识别新 JDK,需手动刷新:
-
IntelliJ IDEA / Eclipse:进
Project Structure → Project SDK,点击 “+” 添加新 JDK 目录,设为项目默认 SDK -
Maven:检查
mvn -v输出的 Java 版本;若仍显示旧版,确认MAVEN_OPTS或settings.xml中未硬编码旧JAVA_HOME -
Gradle:查看
gradle -v,必要时在gradle.properties中显式指定org.gradle.java.home

















