IntelliJ切换老项目报错:找不到指定路径的java.exe求解决
问题原因分析
- 编译服务器缓存残留:IntelliJ后台的编译服务器会缓存之前用过的JDK路径,哪怕项目本身配置改了,编译服务还是会硬调用旧路径。
- 项目隐藏配置残留:项目的
.idea文件夹或.iml模块文件里可能藏着旧JDK17的路径引用,这些在UI设置里看不到。 - 全局构建工具配置关联:Maven或Gradle的全局配置文件可能指定了那个已移动的JDK17旧路径,导致构建时出错。
解决步骤
一、彻底清理编译服务器缓存
关闭IntelliJ,找到路径C:\Users\Me\AppData\Local\JetBrains\IdeaIC2023.1\compile-server,删除整个compile-server文件夹,再重新打开IntelliJ加载项目。
二、清理项目隐藏配置文件
- 关闭IntelliJ,找到老项目的
.idea文件夹,删掉里面的jdk.table.xml文件(这个文件存着项目关联的JDK配置);同时检查每个模块的.iml文件,搜索C:\Users\Me\.jdks\jbr-17.0.7,找到就删掉对应行。 - 重新打开项目,重新配置JDK8作为项目和模块的SDK。
三、检查全局构建工具配置
Maven
- 打开
C:\Users\Me\.m2\settings.xml,搜<jdk>或<java.home>相关配置,要是指向旧JDK17路径,就改成JDK8的路径C:\Program Files (x86)\Java\jdk1.8.0_xxx(替换成你实际的JDK8版本号)。 - 检查项目根目录的
pom.xml,确认<maven.compiler.source>和<maven.compiler.target>都是1.8,且没有硬编码旧JDK路径的配置。
Gradle
- 看项目根目录的
gradle.properties,如果有org.gradle.java.home配置,确认它指向的是JDK8路径,不是旧的JDK17路径。 - 检查
build.gradle文件,确保sourceCompatibility和targetCompatibility设置为1.8。
四、重置IntelliJ全局SDK配置
- 打开IntelliJ,进入
File > Project Structure > SDKs,删掉所有无关的JDK配置(包括那个已移动的Corretto17旧路径),重新添加JDK8和新路径下的Corretto17。 - 进入
File > Settings > Build, Execution, Deployment > Build Tools > Maven > Runner,确认JRE选的是JDK8(针对老项目),或者设置为Use project SDK。
五、校验运行配置
打开老项目的Run/Debug Configurations,点击左上角Edit Configurations,逐个检查每个配置的JRE选项,确保选的是JDK8或Use project SDK。同时点Defaults下的对应类型(比如Application),确认默认配置的JRE也没指向旧JDK17路径。
内容的提问来源于stack exchange,提问作者Lasaqus
相关产品推荐
相关产品推荐

