【exception】java.lang.NoClassDefFoundError Could not initialize class
现网有一个程序,之前是正常的,替换包以后,发现出现这个异常,写一下排查过程
过程
- 这个类、这个程序在本地的IDEA中没有问题,编译是正常的,怀疑是正式环境和测试环境有区别。
- 仔细查看日志,查找问题点。结果发现在一堆报错的中间,有一个不同的报错,是找不到某个类。
- 在IDEA中查看找不到的这个类,发现这个类GSON,版本是2.8.5,查看现网。因为现网的依赖库都是放在jar包外的lib目录下,进入lib目录,发现GSON包版本是2.2.4。
- 将gson包替换后重启,问题解决。
反思
发生异常的类用到了gson的静态成员变量,但是这个static修饰的成员变量有异常的时候,就会导致class文件的初始化异常,因为static修饰的成员变量、方法、静态块都是初始化时候执行的。
所以同理,我网上看到一个例子,在代码的静态块中加载配置文件时,如果配置文件不存在,没有捕获异常,就会出现这种情况。
如:
public class Test {static {File file = new File("/home/test.properties");...}
}
ClassNotFound 和 NoClassDefFound 的区别
以下是我的理解:
ClassNotFound是编译的时候找不到类,这种情况一般都是直接缺少了依赖包,找到依赖包放上去就好。
NoClassDefFound是运行的时候找不到类,这种情况一般是编译环境通过的class文件,在别的环境中准备运行是,因为某种意外(异常)导致类的加载失败或者读取失败,最终导致找不到类。出现NoClassDefFound异常的时候,主要的排查方法是查看日志,找到出现这个异常之前是否出现了别的异常导致了这个问题。
【exception】java.lang.NoClassDefFoundError Could not initialize class相关推荐
- 【ERROR】java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
tomcat 出现java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit运行时异常,主要原因是图 ...
- 【异常】java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher异常解决方法
今天在做web项目时用到JSONObject,用的是MyEclipse自动导入的struts2的lib,其中自带了json-lib-2.1-jdk15.jar. 在struts2的action中已经导 ...
- 【android】java.lang.NoClassDefFoundError或classnotfount等异常错误
在android上开发,当导入一个外部的包,可能会出现这类错误,我已经两次碰到了,一次是用科大讯飞的android开发包,另一次是用Jsoup包(html 解析). 解决方案: 先去掉加入的外部包 不 ...
- 【RabbitMQ】java.lang.NoClassDefFoundError: org/springframework/util/backoff/BackOff
问题描述: Spring整合RabbitMQ时,配置了消费者监听之后启动报错如下: 解决方案: 目前项目中Spring版本为 3.2.8.RELEASE,spring-rabbit版本为1.7.5.R ...
- 【Flink】 java.lang.NoClassDefFoundError: org/apache/kafka/common/serialization/ByteArrayDeserializer
自研flinsql提交平台,在服务器上新安装了一个flink客户端,准备提交flinksql到yarn,执行测试的时候报错 /data/flink/flink-1.13.3/bin/flink run ...
- 【日常Exception】第二十四回:nested exception is java.lang.NoClassDefFoundError: redis/clients/jedis/util/Pool
热门系列: 程序人生,精彩抢先看 日常异常,是否也有你似曾相识的那一个 1.问题 近期遇到的一个异常问题如题所示,下面是完整的异常内容,原景重现: PropertyAccessException 1: ...
- SpringBoot运行出现异常解决: nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext
今天在使用SpringBoot创建了一个项目出现如下异常 org.springframework.beans.factory.BeanCreationException: Error creating ...
- com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/p
今天用 今天用easyexcel遇到这个报错 com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFound ...
- Java EE之Hibernate异常总结【5】java.lang.StackOverflowError[栈溢出]
Java EE之Hibernate异常总结[5]java.lang.StackOverflowError[栈溢出] 参考文章: (1)Java EE之Hibernate异常总结[5]java.lang ...
最新文章
- c语言怎样在不足n位数的整数前补0,C# String 前面不足位数补零的方法
- python各种文件数据的读取
- 【Python进阶】Python进阶专栏栏主自述:不忘初心,砥砺前行
- 【ABAP】SAP供应商自定义决裁生成实现
- 关于栈的写入和延伸的方向
- Linux集群和自动化维1.4.2 优化Linux下的内核TCP参数以提高系统性能
- python2转python3代码_2to3 – 自动Python 2到3代码翻译 – 开发工具(Python教程)(参考资料)...
- android px,dp,sp大小转换工具
- 使用mysqladmin命令修改MySQL密码与忘记密码
- java实现鸭子类型,Golang的interface及duck typing鸭子类型
- VirtualBox下安装MacOS11
- Mybatis-Plus 使用自定义注入器后,查询条件中不再添加逻辑删除字段限定条件
- 曾有望成为第三大移动系统:如今正式告别,明日停止一切支持
- virtualenvwrapper
- 问题:自定义Appender输出DCMTK的oflog
- Python 科学计算库 Numpy 准备放弃 Python 2 了
- 【BZOJ4538】【HNOI2016】网络(树链剖分,线段树,堆)
- 微信终端跨平台组件 mars 开源
- 【图像处理】【去模糊】代码资源汇总
- 免费将pdf文件转换成word
热门文章
- VMware双网卡配置(ubuntu)
- 数学建模————统计问题之分类/聚类(二)
- 解决Failed to load D:\Android-Studio\sdk\build-tools\26.0.1\lib\dx.jar
- 好好学习-三种网络攻击模型
- 全栈工程师是如何炼成的?Node大神狼叔访谈
- JAVA全集-04-高级类特征1
- vue路由IE9浏览器iframe显示空白
- mysql pid文件太大_mariadb /mysql表文件太大导致的数据库启动不了 | Think in Drupal
- 计算机学院志愿者组织名称,计算机学院青年志愿者招募令
- mac装mac和window双系统