IntelliJ中使用Gradle构建项目打JAR包提示找不到主类fake_main如何解决
问题诱因
- IntelliJ的独立JAR构件(Artifacts)配置不会主动同步
build.gradle的更新。你前期配置过fake_main作为主类时,该配置已经写入了IDEA的构件参数中,后续你注释掉该配置、替换为正确主类后,未手动更新IDEA的构件配置,导致打包时仍然沿用旧的fake_main作为主类写入JAR包的Manifest文件。 - 你打包时使用的是IntelliJ自带的「Build Artifacts」功能,而非Gradle自带的jar构建任务,所以
build.gradle中更新后的主类配置没有被读取生效。
解决方案
- 优先使用Gradle原生任务打包:打开IntelliJ右侧的Gradle面板,依次进入
Tasks -> build -> jar,双击执行该任务。构建完成后,生成的JAR包会保存在项目根目录的build/libs路径下,该包会直接读取build.gradle中配置的正确主类,不会出现找不到主类的问题。 - 若需要继续使用IntelliJ的Artifacts功能打包,手动更新配置即可:打开
File -> Project Structure -> Artifacts,找到你当前使用的JAR打包配置,在Manifest的主类设置项中,将fake_main修改为billiards.viewer.Main,保存配置后重新构建即可。 - 也可以先触发Gradle配置同步:点击IntelliJ右侧Gradle面板的刷新按钮,完成全量同步后检查Artifacts配置是否已自动更新为正确主类,确认后重新打包即可。
内容的提问来源于stack exchange,提问作者ZjTan4
相关产品推荐
相关产品推荐

