执行jar文件no main manifest attribute错误

执行jar文件no main manifest attribute错误

问题是由于maven打包时候没有指定主启动程序,或下方配置中多余true配置跳过主程序配置

对应找到build中的所有有关true的删除,再重新打包即可

你遇到的错误是: ``` no main manifest attribute, in app.jar ``` 这个错误的意思是:你尝试运行的 `app.jar` 文件中没有定义 `Main-Class` 属性,Java 无法知道应该从哪个类的 `main` 方法开始运行这个 JAR 文件。 --- ## 🧨 错误原因分析 ### 1. **JAR 文件没有 Main-Class 配置** JAR 包的 `MANIFEST.MF` 文件中没有指定 `Main-Class`,即没有告诉 JVM 哪个类包含 `public static void main(String[] args)` 方法。 ### 2. **Maven 构建的 JAR 默认不包含 Main-Class** 如果你使用的是 Maven 默认的 `maven-jar-plugin`,它不会自动设置 `Main-Class`,除非你在 `pom.xml` 中明确配置。 --- ## ✅ 解决方案 ### ✅ 方法一:使用 Maven 插件配置 `Main-Class` 在 `pom.xml` 中添加或修改 `maven-jar-plugin`,指定主类: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.6.2</version> <configuration> <archive> <manifest> <mainClass>com.example.Main</mainClass> <!-- 替换为你的主类 --> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 然后重新构建 JAR: ```bash mvn clean package ``` --- ### ✅ 方法二:使用 `spring-boot-maven-plugin`(适用于 Spring Boot 项目) 如果你使用的是 Spring Boot,应该使用 `spring-boot-maven-plugin` 来构建可执行 JAR: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 然后运行: ```bash mvn clean package ``` 这会生成一个包含完整依赖和 `Main-Class` 的可执行 JAR。 --- ### ✅ 方法三:手动创建带有 Main-Class 的 MANIFEST 文件(不推荐) 你可以手动创建一个 `MANIFEST.MF` 文件: ``` Main-Class: com.example.Main ``` 然后使用如下命令打包: ```bash jar cfm app.jar MANIFEST.MF -C classes/ . ``` --- ## 🔍 如何查看 JAR 文件中的 Main-Class 你可以使用以下命令查看 JAR 文件MANIFEST: ```bash jar xf app.jar META-INF/MANIFEST.MF cat META-INF/MANIFEST.MF ``` 你应该能看到类似如下内容: ``` Manifest-Version: 1.0 Main-Class: com.example.Main ``` --- ## 🧪 示例:完整 Maven 配置 + 构建流程 ### `pom.xml` 示例 ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.example.Main</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` ### 构建命令 ```bash mvn clean package java -jar target/your-app.jar ``` --- ## ✅ 总结 | 问题 | 原因 | 解决方法 | |------|------|----------| | `no main manifest attribute` | JAR 文件没有指定 Main-Class | 配置 `maven-jar-plugin` 或使用 `spring-boot-maven-plugin` | | Java 无法启动 JAR | 缺少主类信息 | 修改 MANIFEST 文件或使用插件自动配置 | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值