Idea打包jar包的多种方式(解决MANIFEST.MF被覆盖的问题)

目录

生成jar文件

方式一:打包成一个总的jar文件

方式二:打包的jar文件和第三方jar文件分开


生成jar文件

打开“文件->项目结构-构建”

点击“+”选择“jar->from modules ....”

弹出“从模块创建 jar”

方式一:打包成一个总的jar文件

选择“Main Class”,此处选择程序入口的class(就是带有main方法的class)

下面的“JAR files from libraries”选择“extract to the target JAR”,然后确定,确定后会自动生成“META-INF/MANIFEST.MF”(如果该文件已存在是无法确定的,需要先删除该文件),你可以打开看看这个文件,里面有配置mainclass的类名

解释一下这2个选择的含义:

extract to the target JAR:该选项是将项目中引用的所有第三方jar都打包到最终的jar中,最终只生成一个jar文件;

copy to the output directory and link via manifest:该选项打包时,所有第三方jar包不会打包到最终的jar中,而是将第三方jar包都复制到最终jar包文件所在的文件夹中

正常情况,这个时候就可以导出我们的jar包了(构建->编译Artifacts)。

编译后,生成了总的jar包(里面包含了第三方jar包的class文件),此时需要检查一下jar包里面“META-INF/MANIFEST.MF”文件,用文本编辑器打开这个文件,看看里面的是否有:

Manifest-Version: 1.0
Main-Class: {项目的 main class}

如果缺少了“Main-Class”这个配置,则说明该文件被第三方jar生成的同名文件给覆盖了,此时你有2中解决方案:

  • 方法一:编辑上面的“MANIFEST.MF”,然后将“Main-Class”配置补充进去(最好复制上面生成的文件的代码,避免格式不对),然后将修改后的“MANIFEST.MF”覆盖jar中的文件即可;
  • 方法二:在上面的图中,在根目录下创建“META-INF”文件夹,然后手动添加“MANIFEST.MF”文件,然后调整点击“上下”2个按钮来调整顺序(如果上下按钮不可用,则点一下上下按钮左边的那个排序按钮,关闭自动排序),将其调整到所有第三方jar的上面;

方式二:打包的jar文件和第三方jar文件分开

***待完善***

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/798298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海纳斯删除广告位

找到文件 vim /var/www/html/home.php 删除代码段 <div class"adleft" id"adleftContainer"><button onclick"closeAd()">关闭</button><a href"https://www.ecoo.top/ad.html" target"_blank">&l…

CSP201409T5拼图

题意&#xff1a;给出一个 n m nm nm的方格图&#xff0c;现在要用如下L型的占3个的积木拼到这个图中,总共有多少种拼法使图满。 #include<bits/stdc.h> using namespace std; long long n,m,k1,Now; int Mod1000000007; struct Matrix {long long a[129][129];Matrix(…

JAVA—抽象—定义抽象类Converter及其子类WeightConverter

同样&#xff0c;我们由这道题引出抽象类&#xff0c;抽象方法这个概念。 按下面要求定义类Converter及其子类WeightConverter 定义抽象类&#xff1a;Converter&#xff1a; 定义一个抽象类Converter&#xff0c;表示换算器&#xff0c;其定义的如下&#xff1a; 一个私有…

海外仓的出入库流程有什么痛点?位像素海外仓系统怎么提高出入库效率?

随着跨境电商的蓬勃发展&#xff0c;海外仓是其中不可或缺的一个关键环节。而货物的出库与入库则是海外仓管理中的一个核心业务流程&#xff0c;它的运作效率直接影响到整个跨境物流的效率和客户体验。今天&#xff0c;让我们具体来看一看关于海外仓出入库的流程&#xff0c;其…

JVM内存性能调优思路之:通过GC log、Thread Dump 、Heap Dump分析内存使用说明

文章目录 一. 各日志概述1. Garbage Collection Log - 找到GC规律2. 线程转储(Thread dump) - 分析&#xff08;快照&#xff09;线程状态3. 堆转储(Heap dump) - APP某刻内存使用全貌 二. 命令1. 程序的gc日志2. 线程转储3. 堆转储 概述 在 Java 虚拟机中&#xff0c;(GC) Gar…

C++ 类和对象(初篇)

类的引入 C语言中&#xff0c;结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数。 而为了区分C和C我们将结构体重新命名成class去定义 类的定义 标准格式&#xff1a; class className {// 类体&#xff1a;由成员函…

【计算机毕业设计】计算机考试系统设计——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

Android手势识别GestureDetector和ScaleGestureDetector介绍与使用,以自定义一个可拖拽拉伸的ImageView为例

一、GestureDetector 1. 简介 GestureDetector主要用于检测单指手势&#xff0c;例如单击、长按、滑动等&#xff0c;不支持多指手势。 2. SimpleOnGestureListener 内部类 GestureDetector.SimpleOnGestureListener 是用于处理手势事件的辅助类&#xff0c;它包含了一系列…

华为openEuler-22.03-LTS-SP3配置yum源

先有华为后有天&#xff0c;遥遥领先&#xff01; 1 确定使用的OS版本 # cat /etc/os-release NAME"openEuler" VERSION"22.03 (LTS-SP3)" ID"openEuler" VERSION_ID"22.03" PRETTY_NAME"openEuler 22.03 (LTS-SP3)" ANSI…

编程生活day7--明明的随机数、6翻了、吃火锅

明明的随机数 题目描述 明明想在学校中请一些同学一起做一项问卷调查&#xff0c;为了实验的客观性&#xff0c;他先用计算机生成了N个1到1000之间的随机整数&#xff08;N≤100&#xff09;&#xff0c;对于其中重复的数字&#xff0c;只保留一个&#xff0c;把其余相同的数…

[Qt]解析moc文件

产生moc文件 moc文件是Qt的moc预处理器处理带QOBJECT宏的类是产生的文件。 分析 一个Qt创建的示例工程&#xff0c;加上一个按钮的信号和槽产生的moc文件如下 moc_widget.cpp /**************************************************************************** ** Meta obje…

【NLP】关于BERT模型的一些认知

BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;模型是由Google在2018年提出的预训练Transformer模型&#xff0c;用于自然语言处理任务。 一. BERT模型的架构 1.1 输入表示 / Encoder模块 BERT中的Encoder模块是由三种Embedding&…

GD32F470_ DS18B20温度传感器模块移植

DS18B20温度传感器 DS18B20数字温度传感器提供9位至12位精度的温度测量&#xff0c;并具有非易失性用户可编程上下触发点报警功能。DS18B20通过单总线通信&#xff0c;根据定义&#xff0c;只需要一条数据线(和地线)即可与单片机通信。此外&#xff0c;DS18B20可以直接从数据线…

vue2开发好还是vue3开发好vue3.0开发路线

Vue 2和Vue 3都是流行的前端框架&#xff0c;它们各自有一些特点和优势。选择Vue 2还是Vue 3进行开发&#xff0c;主要取决于你的项目需求、团队的技术栈、以及对新特性的需求等因素。以下是一些关于Vue 2和Vue 3的比较&#xff0c;帮助你做出决策&#xff1a; Vue 2&#xff1…

关于项目中遇到的一些form表单校验

1.model 属性绑定 form 数据对象 const formModel ref({username: ,password: ,repassword: })<el-form :model"formModel" >2.v-model 绑定 form 数据对象的子属性 <el-inputv-model"formModel.username":prefix-icon"User"placeh…

设计模式详解(十三)——享元模式

享元模式简介 享元模式定义 享元模式&#xff08;Flyweight Pattern&#xff09;是一种用于优化性能的软件设计模式。它是一种结构型的设计模式。它的主要目的是通过共享物件来减少内存使用量&#xff0c;同时分享信息给尽可能多的相似物件&#xff0c;从而降低内存消耗和提高…

2024.3.20力扣每日一题——数组元素的最小非零乘积

2024.3.20 题目来源我的题解方法一 贪心 题目来源 力扣每日一题&#xff1b;题序&#xff1a;1969 我的题解 方法一 贪心 采用贪心&#xff0c;使得最终的序列应该是满足除了二进制位全为1的 2 p − 1 2^p-1 2p−1之外&#xff0c;其余的首尾两两配对进行交换&#xff0c;最…

docker安装nacos,单例模式(standalone),使用mysql数据库

文章目录 前言安装创建文件夹"假装"安装一下nacos拷贝文件夹删除“假装”安装的nacos容器生成nacos所需的mysql表获取mysql-schema.sql文件创建一个mysql的schema 重新生成新的nacos容器 制作docker-compose.yaml文件查看网站 前言 此处有本人写得简易版本安装&…

log4j 集成 ELK环境搭建

一、前言 1.需要准备一台linux服务器&#xff08;最好是CentOS7&#xff09;,内存至少4g以上&#xff08;三个组件都比较占用内存&#xff09; 2.需要有docker使用经验 3. 三个软件的版本要一致 二、安装ElasticSearch 这里先创建一个网络&#xff1a;因为我们还需要部署k…

VS2022编译OpenCV库(静态库和动态库)

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方…