Maven打Jar包,启动报NoClassDefFoundError错误

news2024/10/5 13:46:20

今天准备将游戏服务器的压测机器人打包分发给其他人来运行对服务器进行压力测试。打成的jar包发现运行报错了。找了半天才找到最终原因。下面是原因和一些分析的情况。

原因

java -jar .\robot.jar

发现错误如下
在这里插入图片描述
看到这个错误就知道jvm找不到对应的类。但是为什么找不到对应的类呢?

查问题

查打包是否都是打成了对应的文件和包

查看打包的目录有lib、resources、jar 。在查看生成的主jar的MANIFEST.MF都是有的目录中的配置文件夹和lib包中的所有的lib包的。

那为什么会出现找不到包的情况呢?之前的很多项目包都是这样进行打包运行都是没有问题的,为什么这个就出现问题了呢?

依赖jar包有时间戳

去IDEA工具中找这个类对应的jar包发现它居然有一个时间戳。如下所示
在这里插入图片描述
然后我在去看主jar的MANIFEST.MF发现这里也有一个时间戳
在这里插入图片描述
但是我项目打包生成在lib文件夹中的对应的jar包是不包含的时间戳的。

哦,原来问题出现在这里。。。。

那应该就是Maven打包的时候没有忽略依赖包的时间戳,从而使其生成的MANIFEST.MF有包含了时间戳的情况。

解决方法

既然找到是打包的时候把时间戳打进了MF文件中,那么将这个去掉应该就没什么问题了。

修改POM配置文件
在这里插入图片描述
只需要增加如下一行配置即可

<useUniqueVersions>false</useUniqueVersions>

这段配置的就是说忽略使用唯一版本号也就是时间戳。

从新打包即可解决问题。

Maven打包,依赖外部的jar和resources

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

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

相关文章

JVM的内存区域划分

文章目录 前言一、本地方法栈&#xff08;线程私有&#xff09;二、程序计数器&#xff08;线程私有&#xff09;三、Java虚拟机栈&#xff08;线程私有&#xff09;四、堆&#xff08;线程共享&#xff09;五、方法区&#xff08;元数据区&#xff09;前言 JVM 是Java 运行的基…

Android:Navigation使用safe args插件传递参数

Navigation使用safe args插件传递参数1、 使用配置2、举例说明1、MainActivity2、AvalFragment, DovomFragment2.1、AvalFragment2.2、DovomFragment参考1、 使用配置 afe args与传统传参方式相比&#xff0c;好处在于安全的参数类型&#xff0c;并且通过谷歌官方的支持&#…

GameFrameWork框架(Unity3D)使用笔记(六)游戏主流程ProcedureMain——从数据表加载出所需实体

目录 前言&#xff1a; 一、Entity配置表 1、创建数据表 2、创建数据表行类 二、Character配置表 1、创建数据表 2、写数据表行类 三、加载数据表 四、扩展一下Entity模块 五、应用Character数据表的位置信息 六、测试 总结&#xff1a; 前言&#xff1a; 上一篇中我…

第2章 Elasticsearch入门

2.1 Elasticsearch 安装 2 . 1 .1 下载软件 Elasticsearch的官方地址&#xff1a;www.elastic.co/cn/ Elasticsearch最新的版本是7.11.2&#xff08;截止2021.3.10&#xff09;&#xff0c;我们选择7.8.0版本&#xff08;最新版本半年前的版本&#xff09; 下载地址&#x…

贝叶斯网络

贝叶斯网络的独立性&#xff1a; 当一个结点G的父节点已知的时候&#xff0c;该结点G与其所有非后代结点条件独立 交叉因果推断&#xff1a;如上述图中的例子,对于P&#xff08;i | g | d&#xff09;等于说是中D到I 这条路径中&#xff0c;做半边的路径是顺着箭头走的&#x…

表白墙(前端+后端+数据库)

目录 一、创建项目 1、创建maven项目&#xff0c;引入依赖 2、创建目录结构 二、前端代码 1、页面内容和样式 2、提交按钮的点击事件 3、发送GET请求 三、数据库 四、后端代码 1、重写doPost方法 1.1 创建Message类 1.2 重写doPost方法 1.3 实现save方法 2、重写…

你需要知道的50颗卫星:地球卫星清单

开放数据卫星 1陆地卫星 地球资源卫星令人难以置信的长期遗产已经保存了地球40多年的历史。通过无数的应用程序&#xff0c;它甚至发现 island Landsat in Canada。 图片来源&#xff1a;NASA 2哨兵 作为 Copernicus Programme 哨兵的6个任务的舰队是一个游戏改变者。明确地…

2022年经典散文:滚烫的石板

滚烫的石板 ——灵遁者 此刻&#xff0c;我想表达的情愫大概有千万种&#xff0c;如何表达并不容易&#xff0c;就好像一个人的时候&#xff0c;也在面对某个我认识或者不认识的人&#xff0c;话总是说不清&#xff0c;也说不出来。 小孩总是敢于表达的&#xff0c;就像一条没…

.NET 7 的 AOT 到底能不能扛反编译?

一&#xff1a;背景 1.讲故事 在B站&#xff0c;公众号上发了一篇 AOT 的文章后&#xff0c;没想到反响还是挺大的&#xff0c;都称赞这个东西能抗反编译&#xff0c;可以让破解难度极大提高&#xff0c;可能有很多朋友对逆向不了解&#xff0c;以为用 ILSpy,Reflector,DnSpy…

群勃龙-半琥珀酸酯(TR-HS)与BSA牛血清白蛋白偶联 TR-HS-BSA

产品名称&#xff1a;群勃龙-半琥珀酸酯与牛血清白蛋白偶联 英文名称&#xff1a;TR-HS-BSA 用途&#xff1a;科研 状态&#xff1a;固体/粉末/溶液 产品规格&#xff1a;1g/5g/10g 保存&#xff1a;冷藏 储藏条件&#xff1a;-20℃ 储存时间&#xff1a;1年 牛血清中的简单蛋白…

全光谱台灯对孩子眼睛有影响吗?什么样的全光谱台灯真的有用

全光谱台灯对眼睛当然是有影响的&#xff0c;因为光谱成分丰富度与太阳光类似&#xff0c;所以无限接近于太阳光的显色能力&#xff0c;这样的灯光下物体的色差如同沐浴太阳光一般真实&#xff0c;色差不失真&#xff0c;人眼自然就越舒服。 那么什么样的全光谱台灯有用呢&…

Python|excel表格数据一键转json格式小工具|支持xlsx、xls格式转json|【源码+解析】

背景 最近在使用JavaScript编写一些浏览器RPA脚本&#xff0c;脚本使用过程中遇到一些问题&#xff0c;脚本使用的数据往往存放在excel表&#xff0c;但运行时只能读取json数据&#xff0c;导致频繁人工excel转json&#xff0c;效率低下。 遇到问题后赶紧搜索excel转json小工…

基于PHP+MySQL药品信息查询系统(含论文)

本系统阐述了医药信息查询系统的开发过程,并对该系统的需求分析及系统需要实现的设计方法作了介绍。该系统的基本功能包括用户注册登录,查看医药资讯,医药查询和在线留言等信息。 本系统技术介绍:php,mysql,apache,notepad,sublime.运行环境wamp,PHPstudy,xammp等php集成环境. …

FastAPI使用typing类型提示

typing是Python标准库&#xff0c;用来做类型提示。FastAPI使用typing做了&#xff1a; 编辑器支持&#xff1b; 类型检查&#xff1b; 定义类型&#xff0c;request path parameters, query parameters, headers, bodies, dependencies等等&#xff1b; 类型转换&#xff1…

去中心化应用的终极是应用链?

互操作性是近期在Web3兴起的概念&#xff0c;是指不同的计算机系统、网络、操作系统和应用程序一起工作并共享信息的能力。随着链上通信、语义交互逐渐复杂&#xff0c;链上用户多样的需求已然超出应用在单条链可承受的技术能力。 原本视作创新实验的Web3应用逐渐被公众接纳&am…

初识变量和数据类型

JavaScript第2天 输入输出语句 输出语句 alert(变量) > 弹出document.write(变量) > 输出在页面上面console.log(变量) > 打印在控制台上 /* JS的输出语句 */ alert("弹出") document.write("直接在写页面上面") console.log("打印在控制…

MacOS 如何选择鼠标不飘滚动平滑

MacOS 如何选择鼠标不飘滚动平滑 前言 今天不务正业的聊聊 macos 下的鼠标的事情&#xff0c;群里也有朋友和我聊&#xff0c;正好说说这事。 我在很长的时间里都在用 macbook pro 的触控板 键盘的高效模式&#xff0c;因为触控板和键盘很近所以效率很高。 但是有一个问题就是…

set和multiset容器

1、基本概念 所有元素在插入时会自动排好序&#xff1b; 属于关联式容器&#xff0c;底层结构是用二叉树实现的 2、set和multiset的区别 set中不允许有重复元素&#xff0c;multiset允许有重复元素。 3、构造和赋值 构造&#xff1a; set<T>st; //默认构造 set&l…

Linux | 进程间通信 | 匿名管道 | 命名管道 | 模拟代码实现进程通信

文章目录进程通信的意义匿名管道通信原理管道的访问控制进程控制管道的特点命名管道进程通信的意义 之前聊进程时&#xff0c;讲过一个性质&#xff0c;即进程具有独立性&#xff0c;两个进程之间的交互频率是比较少的。就连父子进程也只是共享代码&#xff0c;修改父子进程中…

小程序云开发笔记一

一、什么是云开发&#xff1f; 微信官方云原生开发平台&#xff0c;腾讯云的各种能力加持&#xff0c;用云开发开发者可以节省大量的开发时间和运维成本。 二、云开发优势 无需运维&#xff0c;数据变大不需要管理&#xff0c; 弹性伸缩&#xff0c;业务量变大&#xff0c;服…