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.命令 #

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>配置放在最前面。

目录
相关文章
|
2月前
|
缓存 JavaScript Java
常见java OOM异常分析排查思路分析
Java虚拟机(JVM)遇到内存不足时会抛出OutOfMemoryError(OOM)异常。常见OOM情况包括:1) **Java堆空间不足**:大量对象未被及时回收或内存泄漏;2) **线程栈空间不足**:递归过深或大量线程创建;3) **方法区溢出**:类信息过多,如CGLib代理类生成过多;4) **本机内存不足**:JNI调用消耗大量内存;5) **GC造成的内存不足**:频繁GC但效果不佳。解决方法包括调整JVM参数(如-Xmx、-Xss)、优化代码及使用高效垃圾回收器。
146 15
常见java OOM异常分析排查思路分析
|
4月前
|
监控 Java
Java中的内存泄漏分析与排查技巧
Java中的内存泄漏分析与排查技巧
|
6月前
|
缓存 架构师 算法
Java内存溢出如何解决,Java oom排查方法,10个定位解决办法
在Java开发过程中,有效的内存管理是保证应用程序稳定性和性能的关键。不正确的内存使用可能导致内存泄露甚至是致命的OutOfMemoryError(OOM)。
141 0
|
Java
NoClassDefFoundError问题排查
NoClassDefFoundError问题排查
485 0
|
缓存 Java 数据库连接
JAVA-定位排查bug
JAVA-定位排查bug
122 0
|
XML 存储 搜索推荐
java程序报错后的排错思路
java程序报错后的排错思路
|
Java Linux
Java服务CPU100%异常排查实践总结
写作目的 最近看牛客网发现了CPU 100% 怎么办这个问题,这个问题的重点是定位和解决,会用到Linux和java的的很多命令,所以写篇博客记录和总结一下。
191 0
Java服务CPU100%异常排查实践总结
|
Java
JAVA中抓异常的办法
JAVA中抓异常的办法
81 0
|
缓存 运维 监控
Java 服务线上问题排查思路与工具使用
Java 服务线上问题排查思路与工具使用
|
Java 编译器
面试必问:Java 检查异常和非检查异常的区别?别理解错了。。。
面试必问:Java 检查异常和非检查异常的区别?别理解错了。。。
147 0