首页 > 编程语言 >java jar 没有主清单属性_Spring Boot jar中没有主清单属性的解决方法「建议收藏」 在pom中添加一个SpringBoot的构建的插件,然后重新运行mvn install

java jar 没有主清单属性_Spring Boot jar中没有主清单属性的解决方法「建议收藏」 在pom中添加一个SpringBoot的构建的插件,然后重新运行mvn install

时间:2023-04-28 11:45:29浏览次数:51  
标签:SpringBoot Spring Boot jar 清单 属性

java jar 没有主清单属性_Spring Boot jar中没有主清单属性的解决方法「建议收藏」
原文链接:https://cloud.tencent.com/developer/article/2133065

大家好,又见面了,我是你们的朋友全栈君。

使用Spring Boot微服务搭建框架,在eclipse和Idea下能正常运行,但是在打成jar包部署或者直接使用java -jar命令的时候,提示了xxxxxx.jar中没有主清单属性:

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即可。

org.springframework.boot

spring-boot-maven-plugin

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

到此这篇关于Spring Boot jar中没有主清单属性的解决的文章就介绍到这了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

标签:SpringBoot,Spring,Boot,jar,清单,属性
From: https://www.cnblogs.com/sunny3158/p/17361649.html

相关文章

  • 全网最全Linux 运行jar包的几种方式
    全网最全Linux运行jar包的几种方式原文链接:https://blog.csdn.net/zhangmingyue1226/article/details/127831360一、Linux运行jar包的几种方式方式一:java-jarxxx.jar最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL+C打断程序运行,或直接关闭窗口,程序退出。方式......
  • jar包启动基础命令 java -jar common.jar cmd 命令行执行jar包
    jar包启动基础命令命令行执行jar包java-jarcommon.jar原文链接:https://blog.csdn.net/weixin_40483369/article/details/124392170一般情况下运行jar包,当前是可运行的jar包,直接命令java-jarcommon.jar1按下ctrl+C,关闭当前ssh或者直接关闭窗口,当前程序都会退出。......
  • linux下利用nohup后台运行jar文件包程序
    Linux运行jar包命令如下:方式一: 1.java-jarXXX.jar特点:当前ssh窗口被锁定,可按CTRL+C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定?方式二 1.java-jarXXX.jar&&代表在后台运行。特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。继续改......
  • SVG 教程 (五)文本,Stroke 属性,SVG 滤镜,SVG 模糊效果
    SVGSVG文本-<text>元素用于定义文本。实例1写一个文本:下面是SVG代码:<svgxmlns="http://www.w3.org/2000/svg"version="1.1"><textx="0"y="15"fill="red">IloveSVG</text></svg>  对于Opera用户:......
  • html表格相关属性
    <!DOCTYPEhtml><html>   <head>      <metacharset="UTF-8">      <title>表头标签</title>   </head>   <body>      <tablealign="center"border="1"cellpadding="0"......
  • HTML中script 标签中的那些属性
    在HTML中,<script>标签用于嵌入或引用JavaScript代码。在<script>标签中,有两个属性可以用来控制脚本的加载和执行方式:async和defer。当然这也是常见的一道面试题,async 和 defer的作用和区别。async和defer属性都可以用于异步加载脚本,从而避免了在加......
  • Unity获取Material的属性名小坑
    最近在学习UntiyShader的使用,在获取UnityMaterial的属性名时遇到了一个小坑。如图我现在实现了一个云的效果的ShaderShader的属性名如下图红框所示: 当我们想用代码尝试获取属性名并修改时,问题出现了: 报错: 解决:查看shadergraph发现了问题,属性名原来与Shader中的......
  • Delphi 抓图后打印这张图片,弹出打印属性框
    如果用窗体.print打印的话,会导致一些控件打印不出来,比如下拉列表,还有打印TChart也会导致只打印TChart的原始状态,而不会打印有数据的TChart所以我就想到了先抓图,后打印抓图后下拉列表和TChart都正常显示了,可是还有一点不好,就是下拉列表中的值是显示......
  • struts 1.2 struts连接池河dbcp连接池所要用的3个jar包
    连接池struts-config.xml里配置<struts-config>下<data-sources> <data-sourcekey="mysqlDB"type="org.apache.commons.dbcp.BasicDataSource"> <set-propertyproperty="driverClassName" val......
  • js javascript js隐藏页面上有id的控件,隐藏页面上无控件包含的文字,控制页面控件属性
    1.隐藏页面上有id的控件varinput=document.getElementsByTagName("input");//获取页面所有inputfor(vari=0;i<input.length;i++){if(input.item(i).id.indexOf("txt")>=0)//判断input的id中是否包含txt字符串{......