java jar 没有主清单属性_Spring Boot jar中没有主清单属性的解决方法「建议收藏」

java jar 没有主清单属性_Spring Boot jar中没有主清单属性的解决方法「建议收藏」使用SpringBoot微服务搭建框架,在eclipse和Idea下能正常运行,但是在打成jar包部署或者直接使用java-jar命令的时候,提示了xxxxxx.jar中没有主清单属性:D:\hu-git\spring-xxx-xxx\target>java-jarspring-cloud-eureka-0.0.1-SNAPSHOT.jarspring-xxx-xxx-0.0.1-S…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

使用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中没有主清单属性的解决的文章就介绍到这了,更多相关Spring Boot jar 主清单属性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197108.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 开发一个属于自己的app

    开发一个属于自己的app

    2021年9月18日
    57
  • 实现WORD文档、PDF文档在线预览:具体实现流程

    实现WORD文档、PDF文档在线预览:具体实现流程

    2021年7月8日
    105
  • jetty和tomcat优势比较

    jetty和tomcat优势比较Jetty 和 tomcat 的比较 nbsp 相同点 1 nbsp nbsp nbsp nbsp nbsp nbsp Tomcat 和 Jetty 都是一种 Servlet 引擎 他们都支持标准的 servlet 规范和 JavaEE 的规范 nbsp nbsp 不同点 1 nbsp nbsp nbsp nbsp nbsp nbsp 架构比较 Jetty 的架构比 Tomcat 的更为简单 Jetty 的架构是基于 Handler 来实现的 主要的扩展功能都可以用 Handler 来实现

    2025年7月22日
    4
  • allegro转换成pads_图片转换成pdf格式

    allegro转换成pads_图片转换成pdf格式Allegro转PADS格式硬件技术类2009-06-1316:31:11阅读2114评论3字号:大中小订阅Allegro转PADS格式:有一种比较简单的方式,需要借助CAM350Gr]\E1.allegro导出ODB++档案2.CAM350导入ODB++>EC3.CAM350导出PowerPCB4.0ascm用此种方…

    2025年5月24日
    3
  • vim编辑保存退出「建议收藏」

    vim编辑保存退出「建议收藏」vim编辑保存退出命令vim要打开的文件名字比如要打开test.log命令为:vimtest.log注意:如果不存在test.log则会自动创建进入编辑器后按字母“i”即可进入编辑状态(此时左下角会出现“插入”)退出的时候分为4种情况:保存退出、正常退出、不保存退出以及强制退出 2.1:保存退出:按“Esc”键后此时的“插入”会消失,然后按Shift+zz就可以保存修改内容并退出 2.2:不保存退出:当修改修改了一部分内容后发现修改错了,此时就会进

    2022年8月24日
    5
  • 实例与数据库的区别_mysql数据库实例是什么

    实例与数据库的区别_mysql数据库实例是什么mysql目前是开源界应用最为广泛的数据库软件了。相对于重量级的商业产品如oracle、DB2、SQLServer等,Mysql最大的特点就是开源免费。个人用户可以down一个下来,自己搭个网站玩玩。大型互联网企业诸如阿里、网易之类的也可以针对mysql做mysql集群和存储引擎的开发。今天主要是想解释一下mysql体系中,数据库和数据库实例的概念。很多人都在用mysql,也有很多人认为数据库就…

    2022年10月21日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号