• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

运行 jar 出现”中没有主清单属性”

Java 海叔叔 1天前 5次浏览 已收录 0个评论

现象

在运行通过 “java -jar xxx.jar” 的时候, 报 “中没有主清单属性” 错误.

分析原因

看报错像是 jar 包中缺少了属性配置. 解压 jar 包后(Spring Boot 项目), 可以看到三个文件夹: BOOT-INF, META-INF, org. META-INF, 元数据信息, 打开后里面有一个 MANIFEST.MF 文件, 该文件指明了程序的入口以及版本信息等内容:

下面是正常的版本:

可以看出上面版本比下面版本少了: Main-Class 和 Start-Class 等关键信息.

Main-Class 代表了 Spring Boot 中启动 jar 包的程序
Start-Class 属性就代表了 Spring Boot 程序的入口类,这个类中应该有一个main方法
Spring-Boot-Classes 代表了类的路径, 所有编译后的 class 文件, 以及配置文件, 都存储在该路径下
Spring-Boot-Lib 表示依赖的jar包存储的位置

怎么解决这些问题呢? 当然不是自己手动添加这些信息, 应该是打包的时候除了问题, 到项目 pom 文件里面确认一下有无 maven 构建的插件, 没有的话添加上去再重新打包一下, 然后 maven 插件会自动生成注清单属性. 运行 java -jar xxx.jar 时会根据主清单属性找到启动类, 从而启动程序


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址