当前位置: 首页 > news >正文

解决IntelliJ IDEA执行maven打包,执行java -jar命令提示jar中没有主清单属性

问题场景

IDEA执行mvn clean package -DskipTest=true命令或者借助工具的Maven菜单进行打包操作,然后执行java -jar app.jar命令后,提示jar中没有主清单属性


D:\WorkSpace\demo\target>java -jar demo-SNAPSHOT.jar
demo-SNAPSHOT.jar中没有主清单属性

原因分析

这个错误通常是由于生成的JAR文件缺少一个主清单属性引起的。在使用java -jar命令运行JAR文件时,JVM需要查找JAR文件中包含Main-Class属性的清单文件。如果没有找到这个属性,就会出现该错误。

验证分析

打开Jar包,查看其构建的jar目录,可以看到有一个MANIFEST.MF文件。该文件就是jar运行时要查找的清单目录,其中主清单数据,就是要运行的主类,即main函数入口所在的类

在这里插入图片描述
正常情况下,该清单文件内会有一个:

Main-Class:cn.ybzy.demo.mainDemo

解决方案

添加Main-Class

手动创建一个包含Main-Class清单属性的MANIFEST.MF文件,然后将其添加到JAR文件中

打开Jar包,在MANIFEST.MF文件中,添加Main-Class主类

Main-Class:cn.ybzy.demo.mainDemo

使用插件

1.使用maven-jar-plugin插件

在pom.xml文件中使用maven-jar-plugin插件,并在其中指定了<mainClass>属性。

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.2.0</version><configuration><archive><manifest><addClasspath>true</addClasspath><mainClass>com.example.MainClass</mainClass></manifest></archive></configuration></plugin></plugins>
</build>

2.使用maven-shade-plugin插件

  <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.example.MainClass</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins></build>
http://www.lryc.cn/news/167729.html

相关文章:

  • Python--文件和异常
  • IDEFICS 简介: 最先进视觉语言模型的开源复现
  • 玩转Mysql系列 - 第20篇:异常捕获及处理详解
  • 一些工具类
  • 20230916后台面经整理
  • 如何通过快解析测试接口内外网?本地内网ip让外网访问连接
  • 用c++实现五子棋小游戏
  • Android 12.0 SystemUI下拉状态栏定制化之隐藏下拉通知栏布局功能实现(二)
  • 通过finalshell快速在ubuntu上安装jdk1.8
  • 【Linux从入门到精通】多线程 | 线程互斥(互斥锁)
  • Echarts 散点图的详细配置过程
  • Nginx详解 五:反向代理
  • 【PDF密码】PDF文件打开之后不能打印,怎么解决?
  • 深入解析 qsort 函数(下),用冒泡排序模拟实现 qsort 函数
  • Azure + React + ASP.NET Core 项目笔记一:项目环境搭建(二)
  • Vmware通过VMware tools设置共享文件夹
  • RPA机器人流程自动化专题培训大纲 (针对大学生的版本)
  • 数据在内存中的存储——练习4
  • Python 06 之面向对象基础
  • 去除pdf/word的水印艺术字
  • 【Linux】使用 Alist 实现阿里云盘4K播放
  • Gof23设计模式之状态模式
  • 如何免费下载RunWayML产生的视频文件
  • 9.14 C++作业
  • java关于文件记录篇章之文件夹创建篇
  • 显示器显示的画面突然偏红色如何解决
  • 【element-ui】 el-table 表格动态合并相同数据单元格最全教程,可指定列+自定义合并条件,附完整代码
  • 管理方法论:6. 正视团队冲突——化解危机,长治久安
  • 基于SpringBoot的一套强大后台管理系统
  • 音乐项目后台管理系统出现的问题