# Idea 打Jar包启动报错 没有主清单属性(.JavaTest.jar中没有主清单属性)

Idea 打Jar包启动 没有主清单属性(.\JavaTest.jar中没有主清单属性)

解决办法

  • 修改META-INF/MANFEST.MF的位置

在这里插入图片描述

  • 当位置如上图是查看MANIFEST.MF文件内容如下:报错原因主类的地址不对
Manifest-Version: 1.0
Main-Class: http.HttpTest

Idea操作如下

在这里插入图片描述

在这里插入图片描述

  • 运行生成的jar包启动成功!

步骤描述

  • 打开 IntelliJ IDEA,进入项目结构。
  • 在左侧面板中,选择 Artifacts 选项。
  • 点击右侧面板中的 +按钮,选择 JAR -> From modules with dependencies
  • 在弹出的窗口中,选择你想要打包的模块,并确保勾选了 Extract to the target JAR 选项。
  • 点击 OK,然后再次点击 OK 关闭项目结构窗口。
  • 在顶部菜单栏中,选择 Build -> Build Artifacts -> Build
  • 完成构建后,在你的项目目录中会生成一个 JAR 文件。尝试运行该 JAR 文件,是否仍然出现 没有主清单属性 的错误。
  • 如果以上步骤没有解决问题,你可以尝试手动在项目的 META-INF 目录下创建一个名为 MANIFEST.MF 的文件,并在其中添加以下内容:
Main-Class: com.example.Main
  • 确保使用正确的包和类名替换 com.example.Main
  • 然后重新构建 JAR 文件并尝试运行。
### Java运行时缺少主清单属性的解决方案 在使用`java -jar`命令执行JAR文件时,如果遇到“No main manifest attribute”错误,则表示JAR文件中的MANIFEST.MF文件未正确定义`Main-Class`属性。以下是解决问题的具体方法: #### 1. 修改Maven项目的pom.xml配置 为了确保生成的JAR文件含正确的`Main-Class`属性,可以在Maven项目的`pom.xml`中添加插件配置。通过设置`maven-jar-plugin`插件来定义主类。 ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <!-- 定义主类 --> <mainClass>com.test.Main</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 上述配置会告诉Maven,在构建过程中自动生成带有`Main-Class`属性的MANIFEST.MF文件[^1]。 #### 2. 手动编辑MANIFEST.MF文件 如果不希望通过修改`pom.xml`实现自动化处理,也可以手动编辑JAR内的`META-INF/MANIFEST.MF`文件。打开此文件并添加如下内容: ``` Manifest-Version: 1.0 Main-Class: com.test.Main ``` 保存后重新打JAR文件即可正常运行[^2]。 #### 3. 使用IntelliJ IDEA内置工具 对于使用IntelliJ IDEA开发环境的情况,可以通过其内置功能快速完成配置: - 转至菜单栏 `File -> Project Structure...` - 在弹出窗口左侧选择 `Artifacts` - 添加一个新的Artifact类型为`Jar`,并将`Main Class`字段设为`com.test.Main` - 应用更改后点击右上角绿色三角按钮或者直接调用`Build Artifacts`选项进行编译操作 完成后得到的新版JAR文件已具备所需的`Main-Class`信息。 #### 示例代码片段验证 下面是一个简单的测试程序用于确认修复效果: ```java // 文件位置 src/main/java/com/test/Main.java package com.test; public class Main { public static void main(String[] args) { System.out.println("Hello world!"); } } ``` 按照前述任一方式调整好项目设定之后再次尝试执行命令:`java -jar your-generated-file.jar`,应该能够看到预期输出:"Hello world!". ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值