IntelliJ中Gradle Java项目仅首次运行正常,再次执行报找不到主类错误
问题根因
这是IntelliJ IDEA 2021.1.x版本的已知BUG,触发原因是IDEA默认采用Gradle作为构建运行工具时,增量编译逻辑存在冲突:首次运行会正常编译Java源码生成class文件,第二次运行时IDEA判定无代码变更就跳过编译步骤,但Gradle的增量清理逻辑会误删输出目录下的class文件,导致运行时找不到主类。修改build.gradle会触发全量重编译,所以仅能正常运行一次,和你描述的现象完全吻合。
可直接落地的解决方案
方案1:修改构建运行工具(最推荐,开发效率最高)
打开IDEA设置,路径:File > Settings > Build, Execution, Deployment > Build Tools > Gradle
找到「Build and run using」和「Run tests using」两个下拉选项,默认值为Gradle,将两个选项都修改为IntelliJ IDEA,保存设置后重启项目即可解决。
方案2:强制运行前执行Gradle编译任务
如果必须使用Gradle作为构建运行工具,可以修改运行配置:
- 点击右上角运行配置下拉框,选择「Edit Configurations」
- 找到对应Main类的运行配置,定位到「Before launch」配置栏
- 点击+号选择「Run Gradle Task」,选中当前项目,任务名称输入
classes后确认 - 删除原有默认的
Build项,保存配置即可
后续每次运行前都会主动执行Gradle的编译任务,不会跳过编译环节。
方案3:升级IDEA版本
该问题在2021.2及更高版本的IDEA中已经被官方修复,直接升级IDEA版本即可原生解决,无需修改其他配置。
你之前尝试的添加mainClassName、重装软件、切换JDK等操作都没有命中核心问题,自然无法生效。
内容的提问来源于stack exchange,提问作者MrPBR
相关产品推荐
相关产品推荐

