Maven项目导出Jar提示No main manifest attribute错误求助
解决JAR运行时"no main manifest attribute"错误
你的pom.xml里的maven-assembly-plugin版本过于陈旧(2.2-beta-5是多年前的测试版),这很可能是主清单属性未正确生成的核心原因。另外要注意,你需要运行assembly插件生成的包含依赖的JAR,而非Maven默认生成的空JAR。
修复步骤:
1. 更新maven-assembly-plugin到稳定版本
替换旧的assembly插件配置为最新稳定版(示例用3.6.0),确保配置准确:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.6.0</version> <configuration> <archive> <manifest> <mainClass>com.furetto126.furettobot.FurettoBot</mainClass> <!-- 务必确认主类路径和代码中完全一致,包括包名、类名的大小写 --> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
2. (可选)添加maven-jar-plugin兜底配置
如果assembly插件仍有问题,可以额外配置maven-jar-plugin,让默认生成的JAR也包含主类信息:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <configuration> <archive> <manifest> <mainClass>com.furetto126.furettobot.FurettoBot</mainClass> </manifest> </archive> </configuration> </plugin>
3. 正确打包并运行
- 执行Maven命令:
mvn clean package - 打包完成后,在
target目录下找到带-jar-with-dependencies后缀的JAR文件(比如FurettoBot-1.1-jar-with-dependencies.jar),运行该文件:
java -jar target/FurettoBot-1.1-jar-with-dependencies.jar
关键验证
确认com.furetto126.furettobot.FurettoBot类真实存在,且类中包含public static void main(String[] args)方法,包名、类名的大小写必须和代码完全匹配。
内容的提问来源于stack exchange,提问作者Furetto126
相关产品推荐
相关产品推荐

