NoClassDefFoundError 排查思路

1.问题场景

school-1.1.0.jar中没有Student类。
school-1.1.1.jar中有Student类。

虽然在pom中指定了引入的是school-1.1.1.jar,但可能maven打包后只有school-1.1.0.jar而没有school-1.1.1.jar。那么运行时就会报错java.lang.NoClassDefFoundError。

2.命令

#执行此命令,可以看指定目录下哪些jar包中有哪些类,含有指定关键字。
for i in xxx/lib/*.jar; do jar -tvf $i | grep 'MessageOrBuilder' && echo $i ; done

执行效果见图2-1.

图2-1 查看哪个jar包中有哪些文件

2.1 jar

存在于jdk的bin/目录下,用于查看jar包中的内容。

jar -tvf file 
查看指定jar中有哪些文件,也即哪些类,显示示例见下行:

1265 Thu Jan 13 23:06:38 CST 2011 org/apache/commons/lang/time/FastDateFormat$UnpaddedMonthField.class

3.经验

如果lib/目录下只有低版本的包,没有高版本的包,可以尝试把高版本的<dependency>配置放在最前面。

时间: 2024-10-22 19:01:44

NoClassDefFoundError 排查思路的相关文章

线上PHP问题排查思路与实践

前言 前几天,在一淘网,腾讯网媒和微博商业技术联合组织的技术分享大会上,我分享了<在线PHP问题排查思路与实践>.此博文除了对PPT提供下载外,还会对ppt做简单的注释说明.主题分为三部分,常见问题,解决思路和案例分析. 常见问题 不同用户看到的错误可能不一样.一般用户看到的错误都是表层的现象.如,裸奔的错误页面: <img src="http://www.bo56.com/wp-content/uploads/2015/09/luoben.png" alt=&quo

【CDN 最佳实践】CDN访问异常排查思路

当客户使用 CDN 加速站点访问后,客户端的请求将首先发送到 CDN 的 L1 节点,再通过 L1 -> L2 -> 源站的网络路径回源获取资源.因此如果访问过程中出现问题就可能涉及到多级网络链路的问题.如何尽快定位并解决问题就成为疑难问题,本文将根据系统介绍如何定位 CDN 资源无法访问的问题点以及处理的思路. 域名配置和解析 当某个站点的资源 URL 访问出现异常时首先需要查看的即是对应的域名是否有正确配置解析到 CDN 上.如图 1 所示即是 CDN 加速域名的基本配置截图,从图中我们可

MPLS AToM CISCO配置模板与基本故障的排查思路

该文档测试,排错思路基于 VPN故障针断与排除第7章.AToM. 拓扑图: 在这里,R1到R3做AToM. 关键配置: R1和R4就是两台电脑: R1 interface f0/0=1.1.1.1/24 R4 interface f0/0=1.1.1.2/24 R1做为PE-1-R1: hostname PE-1-R2 ip cef mpls label protocol ldp interface Loopback0 ip address 10.1.1.1 255.255.255.255 !

组播的DR的工作原理与故障排查思路详解

1, 问题描述: 我们一台CPE MP1803路由器作为客户的CE路由器,PC发了IGMP report以后,我们路由器会在IGMP表项里写上该组播组,但是客户那里说上游的Huawei PE设备没有收到我们设备的PIM JOIN报文而最终不能将组播流量引下来. 经过排查,发现客户在同一个局域网中有多个CPE, 而且我们的MP1803不是DR. 所以这就是为什么客户开了debug以后不能在我们路由器的上游接口抓到PIM JOIN报文误认为是我们路由器的问题. 当时建议客户把局域网断开,然后直接用P

OceanBase几个常见问题及排查思路

第一种情况:某一台observer挂掉,数据库异常 OceanBase采用的的是多副本集群模式,在不同的zone里面有不同的server,每个zone里面的server是互相备份的.上层是通过slb来分发所以,当其中一台server挂掉的时候,会对业务产生什么影响呢? 制造现象:50用户并发某查询交易时,kill掉某一台(业务所在的observer跟业务不再的observer)observer. 登录到业务所在的ob服务器执行以下命令: ps -ef|grep observer;kill -9

阿里云怎么排查肉鸡类问题

肉鸡类问题排查思路 需要考虑的因素有账户.恶意进程.恶意程序.Web 服务等. 账户 Windows 检查服务器内是否有异常的账户,查看下服务器内是否有非系统和用户本身创建的账户.一般黑客创建的账户账户名后会有$这个字符,有此类账户存在,请立即禁用或者删除掉. 黑客也可能在您服务器内创建隐藏用户,隐藏账户在本地用户内是查看不到的,您可以: 在服务器内单击 开始>运行. 输入 regedt32.exe.建议您在操作修改注册表前先备份,以免操作出错. 依次选择 HKEY_LOCAL_MACHINE/

干货 | 黑客入侵?这里有详细的应急排查手册!

  雷锋网(公众号:雷锋网)按:本文作者sm0nk@猎户攻防实验室,雷锋网宅客频道授权转载,先知技术社区拥有全部内容版权.媒体或商业转载必须获得授权,违者必追究法律责任. 1 事件分类 常见的安全事件: Web入侵:挂马.篡改.Webshell 系统入侵:系统异常.RDP爆破.SSH爆破.主机漏洞 病毒木马:远控.后门.勒索软件 信息泄漏:拖裤.数据库登录(弱口令) 网络流量:频繁发包.批量请求.DDOS攻击 2 排查思路 一个常规的入侵事件后的系统排查思路: 文件分析 a) 文件日期.新增文件

如何排查Java内存泄露(内附各种排查工具介绍)

今天刚刚才加一个故障review会议, 故障非常典型, google下也可以找到相似案例介绍. 在排查问题的过程中,使用了大量的工具, 发现有问题的地方还不只一个,总结一下. (本篇文章不会重点描述案例本身,重点会介绍个人对java内存泄露问题的排查思路和各种工具的使用). java内存泄露典型特征 现象一: 堆/Perm 区不断增长, 没有下降趋势(回收速度赶不上增长速度), 最后不断触发FullGC, 甚至crash(如下**两张图是同一个应用的GC和Perm数据, GC触发原因确认是Per

SSH 无法远程登录问题的处理思路

购买云服务器 ECS(后续简称 ECS)Linux 服务器后,首先面临的就是如何登录和使用的问题.而由于服务器在云端,所以日常运维中通常都会基于 SSH 客户端登录服务器进行相关操作.今天,我们就从登录 ECS 的不同方法和使用场景讲起,捋清 SSH 无法远程登录问题的常见原因与排查思路. ECS Linux 服务器的登录方式 ECS Linux 不同登录方式示意图 如上图所示,当前 ECS Linux 支持 3 种不同的登录方式,其操作说明与使用场景如下: 1.管理终端(远程连接) 使用场景: