news 2026/5/16 15:31:05

【Java用法】jar包运行后显示 没有主清单属性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Java用法】jar包运行后显示 没有主清单属性

jar包运行后显示 没有主清单属性

  • 一、问题现象
  • 二、问题分析
  • 三、解决方案
    • 3.1 添加 spring-boot-maven-plugin 插件
    • 3.2 修改 spring-boot 父级依赖
    • 3.3 配置IDEA开发工具

一、问题现象

jar包运行后显示 没有主清单属性!如下图所示:

前些天发现了一个特别好用的人工智能学习网站,通俗易懂,风趣幽默,忍不住想分享一下给大家,进入传送门:https://www.captainbed.cn/no8g/。

二、问题分析

出现这个报错主要就是三个原因:

1、缺少了项目maven打包插件 spring-boot-maven-plugin。
2、原因是因为项目中使用的springboot版本不同导致的。
3、没有指定具体的项目的Main方法入口或启动类。

三、解决方案

3.1 添加 spring-boot-maven-plugin 插件

把打包方式和打包插件添加到 pom.xml 文件中,然后 mvn clean 一下,再次重新打包,运行 jar 包,解决问题。

<!-- 打包格式 --><packaging>jar</packaging><!-- 打包插件 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><executable>true</executable><layout>JAR</layout></configuration><executions><execution><goals><goal>repackage</goal></goals><configuration><attach>false</attach></configuration></execution></executions></plugin></plugins></build>

3.2 修改 spring-boot 父级依赖

文章中我的项目引用的父级依赖包是2.7.14版本的,亲测能正常打包,所以我的配置是没问题的。


如果小伙伴们用的版本号和我的差别比较大,可能就会不适用,建议使用下面的配置:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><skip>true</skip><finalName>${project.name}</finalName></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>8</source><target>8</target></configuration></plugin></plugins></build>

如果还是不行,就得查一下资料,看看自己项目中用到的springboot版本对应的打包插件配置,尤其是springboot3之后的版本,有很多配置有了很大的改变,本文章主要是用于适应大部分项目中使用的springboot2版本。

3.3 配置IDEA开发工具

步骤一:点击左上角 File --> Project Structure
步骤二:弹出新窗口后点击Artifacts-"+"号-JAR-From module with dependenceis…
步骤三:弹出新窗口后点击Main Class最优边文件夹图标

步骤四:弹出新窗口后点击Project-选择项目中的启动类-OK


步骤五:回到上一窗口后点击Directory for META-INF/MANIFEST.MF右边的文件夹图标- 选择自己项目的根路径-OK

步骤六:回到上一窗口后点击OK(可以看见有如下图所示的改变)


步骤七:点击右边的Maven Projects-点击Lifecycle下的clean插件-观察控制台信息clean结束则点击install或者package也行-等运行完就能看见项目根路径下生成了MANIFEST.MF文件




本文完结!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 15:31:05

从V1到V3:手把手教你用PyTorch复现MobileNet进化史(附完整代码)

从V1到V3&#xff1a;手把手教你用PyTorch复现MobileNet进化史&#xff08;附完整代码&#xff09; 在移动端和嵌入式设备上部署深度学习模型一直是计算机视觉领域的核心挑战之一。2017年&#xff0c;Google推出的MobileNet系列彻底改变了轻量级卷积神经网络的设计范式&#xf…

作者头像 李华
网站建设 2026/5/16 15:31:04

Apollo Planning——换道决策:LANE_CHANGE_DECIDER的状态机与安全边界

1. 理解LANE_CHANGE_DECIDER的核心作用 在Apollo自动驾驶系统中&#xff0c;LANE_CHANGE_DECIDER&#xff08;换道决策器&#xff09;扮演着交通场景中变道行为的"指挥官"角色。想象一下你在高速公路上开车&#xff0c;当需要超车或者避开慢车时&#xff0c;你会先观…

作者头像 李华
网站建设 2026/5/16 15:30:05

【附C源码】基于邻接表的图结构实现与算法实践

【附C源码】基于邻接表的图结构实现与算法实践 图&#xff08;Graph&#xff09;作为非线性数据结构的核心成员&#xff0c;在社交网络分析、路径规划、依赖管理等领域有着广泛应用。本文将介绍一种基于邻接表的图结构C语言实现&#xff0c;涵盖基础操作、遍历算法以及最短路径…

作者头像 李华
网站建设 2026/5/16 15:30:04

LVGL8滚动布局避坑指南:从官方例程到自定义网格(Grid)的完整配置流程

LVGL8滚动布局避坑指南&#xff1a;从官方例程到自定义网格的完整配置流程 第一次接触LVGL8的滚动布局时&#xff0c;我像大多数开发者一样&#xff0c;直接从官方文档复制了示例代码。但当我试图修改成自己的网格布局时&#xff0c;却发现图片错位、滚动失效、事件响应异常等问…

作者头像 李华
网站建设 2026/5/16 15:27:18

Linux开机启动项检查与优化

Linux开机启动项检查与优化Linux 系统启动后会自动拉起大量服务&#xff0c;其中有些是必要基础组件&#xff0c;有些则可能早已不再需要。启动项过多不仅会拉长开机时间&#xff0c;还可能增加资源消耗和攻击面。中级阶段需要掌握的&#xff0c;不只是会开启或关闭某个服务&am…

作者头像 李华
网站建设 2026/5/16 15:27:16

Linux文件传输与远程同步实践

Linux文件传输与远程同步实践在 Linux 环境中&#xff0c;文件传输是极高频操作。配置下发、日志取证、数据迁移、备份同步和跨主机分发&#xff0c;都离不开稳定可靠的传输方式。中级阶段不应只满足于“文件拷过去了”&#xff0c;而要关心传输是否可验证、是否增量、是否安全…

作者头像 李华