Spring Boot:jar中没有主清单属性

2023-11-02

D:\hu-git\spring-xxx-xxx\target>java -jar spring-cloud-eureka-0.0.1-SNAPS HOT.jar spring-xxx-xxx-0.0.1-SNAPSHOT.jar中没有主清单属性

通过maven打jar包:mvn install, 或者在IDE中右击选择Run as -> maven install。
在这里有一个问题就是主清单属性是什么?
以SpringBoot为例,jar包中包含了三个文件夹:BOOT-INF,META-INF,org,可以把jar包解压到文件夹下查看,其中META-INF文件夹下有一个MANIFEST.MF文件,该文件指明了程序的入口以及版本信息等内容,如下
 

Manifest-Version: 1.0
Implementation-Title: spring-xxx-xxx
Implementation-Version: 0.0.1-SNAPSHOT
Archiver-Version: Plexus Archiver
Built-By: XXXX
Implementation-Vendor-Id: com.huyikang.practice
Spring-Boot-Version: 1.5.9.RELEASE
Implementation-Vendor: Pivotal Software, Inc.
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.huyikang.practice.eureka.Application
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.5.2
Build-Jdk: 1.8.0_151
Implementation-URL: http://maven.apache.org
-------------------------------------------------------------------

Main-Class代表了Spring Boot中启动jar包的程序
Start-Class属性就代表了Spring Boot程序的入口类,这个类中应该有一个main方法
Spring-Boot-Classes代表了类的路径,所有编译后的class文件,以及配置文件,都存储在该路径下
Spring-Boot-Lib表示依赖的jar包存储的位置
这些值都是SpringBoot打包插件会默认生成的,如果没有这些属性,SpringBoot程序自然不能运行,就会报错:jar中没有主清单属性,也就是说没有按照SpringBoot的要求,生成这些必须的属性。
解决办法:
在pom中添加一个SpringBoot的构建的插件,然后重新运行 mvn install即可。
--------------------- -------------------------------------------------------------------

<build>
  <plugins>
      <plugin>
          <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
  </plugins>
 </build>
--------------------------------------------------------------------------------------

在运行mvn install的时候,自动生成这些主清单属性,运行java -jar xxx.jar时会根据主清单属性找到启动类,从而启动程序。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot:jar中没有主清单属性 的相关文章

  • 路由工作原理以及eNSP静态路由配置实验

    文章目录 一 路由器 1 1 什么是路由器 1 2 路由器工作原理以及功能 1 3 路由表 1 4 路由的种类 二 静态理由 三 eNSP静态路由实验 一 路由器 1 1 什么是路由器 路由器 Router 是连接两个或多个网络的硬件设备
  • 对el-table只做升降排序,去除中间默认状态

    概述 大家都知道 el table 排序存在升序 降序 默认不排序的状态 本次做项目时遇到了需要对表格进行排序的功能 要求排序时只对数据进行升序 降序排序 本次开发使用了 el table 组件 且去除了中间默认不排序状态 本次排序功能是后

随机推荐

  • windows下python3.9安装pycrypto成功总结

    用pip install pycrypto会提示 Microsoft Visual C 14 0 or greater is required 看了一些文章说要去下载安装vc 的运行环境 实测后 没什么用 有2个方法是可行的 1 pip i
  • [数据分析与可视化] Python绘制数据地图3-GeoPandas使用要点

    本文主要介绍GeoPandas的使用要点 GeoPandas是一个Python开源项目 旨在提供丰富而简单的地理空间数据处理接口 GeoPandas扩展了Pandas的数据类型 并使用matplotlib进行绘图 GeoPandas官方仓库
  • 刷脸支付利用线下流量是至关重要的

    微信刷脸 刷脸支付带出的新颖 便捷 有效以及安全的支付体验 是能够大大提高客户对刷脸商品的认可度和信赖度 刷脸收款不仅仅在收款过程中缩小时间 还将吸引消费者注意力的时间延长了5秒到8秒右左 这几秒就有很大的商业价值 是让顾客跟商家的经营生成
  • 分布式任务-数据批量新增数据库

    分布式 数据批量新增数据库 0 pojo package com mall order pojo import org apache commons lang3 builder ToStringBuilder import javax pe
  • vue3 transition 隐藏过渡,折叠过渡效果实现

    隐藏过渡 可以直接使用官方给出的例子 隐藏过渡效果 fade enter active fade leave active transition opacity 0 5s ease fade enter from fade leave to
  • Python使用pyechart绘制3d散点图

    代码 import numpy as np import pyecharts options as opts from pyecharts charts import Scatter3D if name main a np arange 1
  • Python 之pandas库的安装及库安装两方法总结

    如果你连续看了博主的各类Python的库引用 你会发现这都是套路 先上正儿八经的流程 后面一句话总结一下这些库的安装套路 不知道安装库的你们用的什么操作 请耐心看到最后哦 保证未来的安装一举成功 一 pandas库的安装 1 打开cmd窗口
  • 扩展Ribbon支持Nacos权重的三种方式

    Nacos支持权重配置 这是个比较实用的功能 例如 性能差的机器权重设低 性能好的机器权重设高 让请求优先打到性能高的机器上去 某个实例出现异常时 把权重设低 排查问题 问题排查完再把权重恢复 想要下线某个实例时 可先将该实例的权重设为0
  • Vue - 将页面内容下载为 pdf 格式文件(html2canvas + jspdf)

    Vue 将页面内容下载为 pdf 格式文件 html2canvas jspdf 一 安装所需依赖 二 htmlToPdfNew js 核心文件 三 组件使用方法 四 组件使用实例 一 安装所需依赖 npm install html2canv
  • Apache Beam的特点

    不多说 直接上干货 Apache Beam 有两大特点 1 统一了数据批处理 batch 和流处理 stream 编程范式 2 能在任何执行引擎上运行 它不仅为模型设计 更为执行一系列数据导向的工作流提供了统一的模型 这些工作流包括数据处理
  • unity游戏开发入门——加载场景的方式

    unity加载场景的四种方式分别是 1 Application LoadLevel 同步载入 如果当前场景为A 我们要切换到场景B unity会在切换场景的时候将场景B中的全部内容 场景B中全部的静态物体 不包含兴许代码中Instantia
  • unity C# 使用 action实现函数回调和 委托(Delegate)

    一 C 使用 action实现函数回调 1 1 声明一个方法 这个方法需要传递进去一个函数 并且这个传递进去的函数也是需要参数的 我们把它声明为Action
  • unity 计时器

    unity 计数器 计时器就是在游戏界面的时间 可以是一个正计时 也可以是倒计时 现在简单分享一下简单的计时代码 private void Update totalTime Time deltaTime if totalTime lt 0
  • SpringCloud的搭建

    SpringCloud的搭建 源码 Eureka的创建步骤 最终版为2021 5 23版本 每次提交对应下面的一个步骤 1 Eureka保证AP 2 Eureka的使用 Ribbon的使用步骤 最终版为2021 5 24版本 每次提交对应下
  • Hive SQL中的lateral view explode

    公众号后台回复 图书 了解更多号主新书内容 作者 胖里 来源 胖里的日常 标题中直接写lateral view explode是我鲁莽了 毕竟这俩不是法定cp 也并不是不能分开各自生活 其中explode可以放在select从句中单独使用
  • android ScrollView 嵌套RecyclerView 解决滑动冲突

    为了解决滑动事件的冲突需要重写ScrollView Copyright 2014 Soichiro Kashima Licensed under the Apache License Version 2 0 the License you
  • 【Linux

    目录 一 判断文件是否存在 1 1 判断目录是否存在 1 2 判断文件是否存在 1 3 其他文件类型判断 二 字符串截取 去掉文件后缀 2 1 获取文件后缀 2 2 获取文件前缀 在Linux编程过程中 设计到对文件的处理时常常需要判断某个
  • 远程调试运行在Resin上面的Web应用程序

    为什么80 的码农都做不了架构师 gt gt gt 有时候 我们不得不放弃在本地调试我们的程序 把我们的程序先布署到服务器 然后把调试信息都记在日志中 用眼睛瞅日志来调试程序 不是用这种方式不行 只是效率太低 本来写程序是一件开心的事情 却
  • UE4数字孪生项目制作规范

    UE数字孪生项目制作规范 说明 协同 规范 说明 UnrealEngine项目 打包输出Window应用 鼠标操作 键盘快捷键操作 协同 内部开发的可以自己内网搭建svn服务器协同开发 如有外部人员参与项目开发 则项目协同可使用svnbuc
  • Spring Boot:jar中没有主清单属性

    D hu git spring xxx xxx target gt java jar spring cloud eureka 0 0 1 SNAPS HOT jar spring xxx xxx 0 0 1 SNAPSHOT jar中没有主