执行Maven clean后Java应用报错找不到主类,求原因
Maven Clean后无法找到主类的原因及解决方法
核心原因
Maven的clean命令会直接删除项目根目录下的target文件夹——这是Maven存放编译后的.class文件、打包产物等的核心目录。执行clean后,之前编译好的StartApplication.class会被彻底清除,如果没有重新执行编译步骤就直接运行应用,自然会出现找不到主类的错误。
额外潜在问题(结合你的pom.xml)
你的pom.xml缺少maven-compiler-plugin配置,这可能导致:
- JDK编译版本与运行环境不匹配
- 编译后的class文件没有正确生成到
target/classes目录
另外需要确认项目结构是否符合Maven规范:主代码必须放在src/main/java目录下,org.main.StartApplication对应的文件路径应为src/main/java/org/main/StartApplication.java。
解决步骤
- 重新编译项目:在STS4中右键项目 → Run As → Maven build...,在Goals输入框中填写
compile并执行,或者直接在终端运行mvn compile命令,这会重新生成编译后的class文件到target/classes目录。 - 补充maven-compiler-plugin配置:在pom.xml的
<project>标签内添加以下配置(根据你实际使用的JDK版本调整source和target的版本号,示例为JDK8):
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
- 验证项目结构:确认
StartApplication.java的存放路径正确,若路径错误,将文件移动到src/main/java/org/main/目录下。 - 重新运行应用:编译完成后,右键
StartApplication.java→ Run As → Java Application,即可正常启动。
内容的提问来源于stack exchange,提问作者Juan Cruz
相关产品推荐
相关产品推荐

