彻底卸载Java需清理注册表、环境变量、缓存目录及旧JDK残留;重装前须确认JAVA_HOME和PATH无旧路径,推荐下载免安装ZIP版JDK并手动配置;IDE和构建工具需单独更新SDK引用。

Java 在 Windows 上卸载重装不是删掉文件夹就完事——残留的注册表项、环境变量、缓存目录和旧版本 JDK/JRE 共存会直接导致 java -version 显示错乱、IDE 找不到 SDK、Maven 编译报 Unsupported class file major version 等问题。
彻底卸载 Java:不止是控制面板里点“卸载”
Windows 控制面板里的“程序和功能”只卸载了通过 MSI 安装包安装的 JDK/JRE,但以下内容不会被自动清理:
-
JAVA_HOME和PATH中残留的旧路径(比如指向C:\Program Files\Java\jdk-11.0.2) - 注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft下的旧版本配置(影响java.exe自动路由) - 用户目录下的
%USERPROFILE%\AppData\LocalLow\Sun\Java和%USERPROFILE%\AppData\Roaming\Mozilla\Java(部分浏览器插件或旧 JNLP 缓存) - 系统级临时目录中的
C:\ProgramData\Oracle\Java(JDK 安装器日志和元数据)
建议操作:
- 先在控制面板卸载所有带 “Java” 或 “JDK” 字样的条目
- 手动删除
C:\Program Files\Java\下全部子目录(包括jre*、jdk*) - 用
regedit删除HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft和HKEY_CURRENT_USER\SOFTWARE\JavaSoft(若存在) - 清空
%USERPROFILE%\AppData\LocalLow\Sun\Java和C:\ProgramData\Oracle\Java
重装前必须检查的三个环境变量
即使你刚清空了 C:\Program Files\Java\,如果 PATH 里还留着旧 bin 路径,终端一打开就会优先加载旧 java.exe,后续安装的新 JDK 彻底失效。
立即学习“Java免费学习笔记(深入)”;
打开命令提示符,执行:
echo %JAVA_HOME% echo %PATH%
确认输出中不含任何 java 相关路径。若仍有残留,需手动编辑系统环境变量:
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板
-
JAVA_HOME:应设为新 JDK 解压/安装后的根目录,例如C:\Program Files\Java\jdk-21(注意:不带\bin) -
PATH:添加%JAVA_HOME%\bin,不要硬编码完整路径(否则换 JDK 版本时要反复改) - 删掉 PATH 中所有其他
java、jre、jdk相关条目(尤其警惕 IDE 自动加的路径,如 IntelliJ 的bin\launcher前置项)
下载与安装 JDK 的关键选择
官网(https://adoptium.net/ 或 https://sdkman.io/jdks)比 Oracle 官网更推荐——前者提供免安装 ZIP 包(jdk-21+35_windows-x64_bin.zip),后者 MSI 安装器仍会往注册表写 JavaSoft,且默认装到 C:\Program Files\Java\ 下容易权限出问题。
实操建议:
- 优先下载
.zip格式 JDK(如 Eclipse Temurin),解压到无空格、无中文路径,例如D:\jdk-21 - 避免使用
C:\Program Files\:Windows 对该目录有虚拟化保护,某些工具(如 Gradle Wrapper)可能因权限失败静默降级到旧 JDK - 不要勾选 “Add to PATH” 或 “Set JAVA_HOME” 的安装选项(哪怕 MSI 提供)——自己配才可控
- 装完立刻验证:
java -version javac -version where java
输出应三者一致,且where java返回唯一路径,指向你刚设的%JAVA_HOME%\bin\java.exe
IDE 和构建工具的隐性依赖
IntelliJ / Eclipse / VS Code 的 Java 插件、Maven / Gradle 默认不会读取系统 JAVA_HOME,它们各自维护 SDK 列表。重装 JDK 后,这些工具大概率仍在用旧版本,编译输出却显示“已更新”,极易误判。
必须手动刷新:
- IntelliJ:File → Project Structure → Project → Project SDK → 点 “+” 添加新 JDK 根目录(选
D:\jdk-21,不是bin子目录) - Maven:检查
%MAVEN_HOME%\conf\settings.xml或项目pom.xml中是否有类硬编码,它不决定运行时 JDK,但会干扰编译目标字节码版本8 - Gradle:查看
gradle.properties是否有org.gradle.java.home,如有,需指向新 JDK 路径 - VS Code:Java Extension Pack 会扫描
JAVA_HOME,但首次启动后会缓存,需重启窗口或执行命令 “Java: Configure Java Runtime”
最隐蔽的问题是:CMD/PowerShell 里 java -version 正确,但 IDE 终端里仍是旧版本——因为 IDE 的终端继承的是它自己的环境变量,不是系统 Shell 的。









