项目构建仍查找已卸载的Oracle JDK-21,原因何在?
问题排查与解决方案
可能的原因及对应解决步骤
1. Gradle缓存残留旧JDK路径
Gradle会缓存过往环境配置,即便系统环境变量已更新,缓存内的旧路径仍可能生效:
- 清理项目本地缓存:删除项目根目录下的
.gradle文件夹,重新执行gradlew build。 - 清理全局Gradle缓存:删除路径
C:\Users\<你的用户名>\.gradle\caches下的所有内容(此操作会清除所有项目的Gradle缓存,后续构建将重新下载依赖)。
2. IDE(若使用IDE构建)的JDK配置未更新
如果通过IntelliJ IDEA、Eclipse等IDE构建项目,IDE可能保留旧JDK配置:
- IntelliJ IDEA:打开
File > Project Structure,确认Project SDK和Modules中的SDK已切换为Adoptium JDK21;再检查Settings > Build, Execution, Deployment > Build Tools > Gradle里的Gradle JVM是否指向正确路径。 - Eclipse:打开
Window > Preferences > Java > Installed JREs,确保仅勾选Adoptium JDK21;再检查项目Properties > Java Build Path中的JRE系统库是否关联正确版本。
3. 系统环境变量未完全生效
虽然已设置JAVA_HOME和Path,但未重启相关程序可能导致环境变量未刷新:
- 关闭所有正在运行的命令提示符、IDE等程序,重新打开后再执行构建命令。
- 确认
JAVA_HOME为系统变量:打开系统属性 > 高级 > 环境变量,在「系统变量」栏验证JAVA_HOME值是否正确;若「用户变量」栏存在旧的JAVA_HOME条目,直接删除。
4. 项目Gradle配置硬编码旧JDK路径
部分项目会在配置文件中指定JDK路径:
- 检查项目根目录的
gradle.properties,若存在org.gradle.java.home配置项,修改为Adoptium JDK路径:org.gradle.java.home=C:\Program Files\Eclipse Adoptium\jdk-21.0.1.12-hotspot - 检查
build.gradle中的java块,确认sourceCompatibility和targetCompatibility设置为21,无硬编码的旧路径配置。
5. Windows注册表残留旧JDK信息
Oracle JDK卸载后,注册表可能残留路径关联:
- 按下
Win+R输入regedit打开注册表,导航至HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit,删除指向旧JDK21的条目;再检查HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment下的相关项,清除旧路径关联。 - 注意:修改注册表前请备份,避免误操作影响系统。
内容的提问来源于stack exchange,提问作者Leahcim
相关产品推荐
相关产品推荐

