jar中没有主清单属性啥意思啊_eclipse 找不到或无法加载主类

jar中没有主清单属性啥意思啊_eclipse 找不到或无法加载主类今天新写的SpringBoot项目打jar包部署的时候遇到一个问题,xxx.jar包中没有主清单属性。如下图所示:主清单属性是jar包中MANIFEST.MF文件中的一个属性,MANIFEST.MF文件位于jar包的META_INF路径下打开MANIFEST.MF文件,里面有如下属性:Manifest-Version:1.0Implementation-Title:com.imoocImple…

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

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

今天新写的SpringBoot项目打jar包部署的时候遇到一个问题,xxx.jar包中没有主清单属性。如下图所示:

4d5f3d1221bb63b0f38c63ba56983f84.png

主清单属性是jar包中MANIFEST.MF文件中的一个属性,MANIFEST.MF文件位于jar包的META_INF路径下

5c2e1daddf968420dc5ca587a86ac0b0.png

打开MANIFEST.MF文件,里面有如下属性:

Manifest-Version: 1.0Implementation-Title: com.imooc

Implementation-Version: 1.0-SNAPSHOT

Archiver-Version: Plexus Archiver

Built-By: liu

Implementation-Vendor-Id: com.zh

Created-By: Apache Maven 3.6.3Build-Jdk: 1.8.0_111

Implementation-URL: http://www.example.com

Implementation-Vendor: Pivotal Software, Inc.

再贴一个正常的MANIFEST.MF:

Manifest-Version: 1.0Implementation-Title: common

Implementation-Version: 0.0.1-SNAPSHOT

Spring-Boot-Version: 2.1.5.RELEASE

Main-Class: org.springframework.boot.loader.JarLauncher

Start-Class: com.zh.common.management.CommonApplication

Spring-Boot-Classes: BOOT-INF/classes/Spring-Boot-Lib: BOOT-INF/lib/Build-Jdk-Spec: 1.8Created-By: Maven Archiver 3.4.0

对比发现有问题的jar包文件中多了Archiver-Version、Built-By、Implementation-Vendor-Id三个属性,少了Spring-Boot-Version、Main-Class、Start-Class、Spring-Boot-Classes、Spring-Boot-Lib五个Springboot相关的属性。

Main-Class:属性值代表了Spring Boot中启动jar包的程序,值为 org.springframework.boot.loader.JarLauncher,这个就是Springboot启动项目的类

Start-Class:属性值代表了Spring Boot程序的入口类,即XXXApplication类

Spring-Boot-Classes:属性值代表了类路径,所有编译后的class文件,以及配置文件,都存储在该路径下

Spring-Boot-Lib:属性值代表了表示依赖的jar包存储的位置

以上这些属性是Springboot打包插件默认生成,缺少这些属性项目无法运行。

所以需要再pom文件中添加Springboot打包插件:

org.springframework.boot

spring-boot-maven-plugin

按照一个正统的教程到这里应该就结束了,但是….

一顿操作之后你的项目可能会OK了,但也可能仍然有问题

我项目的POM文件是自动生成的在build标签里面附带了一个pluginManagement标签,我们知道pluginManagement一般是在父pom中,pluginManagement中包裹的插件,子pom可以直接引用,但也必须在子pom中写出来。当我百思不得其解的时候 ,我比较了我之前项目的pom文件,发现没有这个标签,然后我尝试删除pluginManagement标签之后。再次编译的jar包终于运行成功。这里pluginManagement的某种我不知道的特性可能对Springboot打包插件的生效产生了某种不可名状的干扰。

org.springframework.boot

spring-boot-maven-plugin

org.apache.maven.plugins

maven-compiler-plugin

8

8

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

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

(0)
上一篇 2025年9月12日 上午10:15
下一篇 2025年9月12日 上午10:43


相关推荐

  • windows server ftp服务器怎么搭建_serveru访问ftp

    windows server ftp服务器怎么搭建_serveru访问ftp首先说说什么是ftp?FTP协议是专门针对在两个系统之间传输大的文件这种应用开发出来的,它是TCP/IP协议的一部分。FTP的意思就是文件传输协议,用来管理TCP/IP网络上大型文件的快速传输。FTP最早也是在Unix上开发出来的,并且很长一段时间里只有Unix系统支持FTP功能,后来逐渐普及到其他系统,并成为Internet/Intranet网络中的标准组件。FTP服务器就是局域网信息资源的存储中心,主要是用来进行文件共享和传输。为了便于数据信息的共享和沟通,很多企业甚至个人都想搭建自己的ftp

    2025年11月2日
    5
  • SQL Server配置管理器没有任何项目

    SQL Server配置管理器没有任何项目今天安装了SQL2017后,连接数据库发现报sql错误2,想着是MSSQLSERVER服务没开,就去配置管理器打开,但是发现新安装的sql,显示没有任何项目辗转查了好久才发现导致的原因是:安装sql过程中,添加实例为当前系统用户,但是之后我修改过系统的计算机名称,导致原实例MSSQLSERVER不识别,所以不显示也不识别。解决方法有:(选择其中一种执行即可)(1)把计算机的名称

    2022年7月20日
    38
  • JSONObject使用方法详解

    JSONObject使用方法详解/***项目名称:tools*项目包名:com.songfayuantools.json*创建时间:2017年7月31日上午11:58:51*创建者:Administrator-宋发元*创建地点:*/packagecom.songfayuantools.json;importcom.songfayuantools.entity.UserInfo;im

    2022年7月13日
    17
  • cstdio和stdio.h的区别

    cstdio和stdio.h的区别找了很多资料 没有说的很明白的 下面是老外的一篇文章 解释的比较清楚 后面给出翻译 Clarifyingst hversuscstdi 转自 http forums codeguru com showthread php Clarifying stdio h versus cstdioIconst

    2026年3月16日
    2
  • webstorm激活码最新2021【中文破解版】

    (webstorm激活码最新2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1…

    2022年3月28日
    71
  • vs的svn插件(怎么下载vs2010安装包)

    一.SVN客户端安装首先下载SVN地址:https://tortoisesvn.net/downloads.zh.html根据版本进行选择安装直接下一步下一步默认文件夹就好了安装完成右键就会有二个多出来的菜单都是英文不是很方便二.语言转换在下载SVN的下面就有语言包可以一起下载进行语言包安装找到c盘在这个目录下找到svn选择语言文件夹把语言包复制进去进行安装,安装完成打开SVN的settings的快捷方式,在里面进行选择语言,应用确认就好。这样一个SVN的安装汉化就完成

    2022年4月16日
    99

发表回复

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

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