前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运行 jar 出现"中没有主清单属性"

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

作者头像
芥末鱿鱼
发布2022-05-05 14:50:49
6.8K0
发布2022-05-05 14:50:49
举报
文章被收录于专栏:玩转 Spring Cloud

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

文章目录

现象

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

代码语言:javascript
复制
PS D:\Users\Gato\idea\zhiqu\joke-ms\joke-server\target> java -jar .\joke-server-1.0.0-SNAPSHOT.jar
.\joke-server-1.0.0-SNAPSHOT.jar中没有主清单属性

分析原因

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

代码语言:javascript
复制
Manifest-Version: 1.0
Implementation-Title: joke-server
Implementation-Version: 1.0.0-SNAPSHOT
Built-By: Alan
Implementation-Vendor-Id: com.deepflow
Created-By: Apache Maven 3.6.1
Build-Jdk: 1.8.0_181
Implementation-URL: http://localhost/joke-ms/joke-server

下面是正常的版本:

代码语言:javascript
复制
Manifest-Version: 1.0
Implementation-Title: joke-server
Implementation-Version: 1.0.0-SNAPSHOT
Built-By: Alan
Implementation-Vendor-Id: com.deepflow
Spring-Boot-Version: 2.0.9.RELEASE
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.deepflow.JokeServerApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.6.1
Build-Jdk: 1.8.0_181
Implementation-URL: http://localhost/joke-ms/joke-server

可以看出上面版本比下面版本少了: 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 时会根据主清单属性找到启动类, 从而启动程序

代码语言:javascript
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 现象
  • 分析原因
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档