现网有一个程序,之前是正常的,替换包以后,发现出现这个异常,写一下排查过程

过程

  1. 这个类、这个程序在本地的IDEA中没有问题,编译是正常的,怀疑是正式环境和测试环境有区别。
  2. 仔细查看日志,查找问题点。结果发现在一堆报错的中间,有一个不同的报错,是找不到某个类。
  3. 在IDEA中查看找不到的这个类,发现这个类GSON,版本是2.8.5,查看现网。因为现网的依赖库都是放在jar包外的lib目录下,进入lib目录,发现GSON包版本是2.2.4。
  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相关推荐

  1. 【ERROR】java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit

    tomcat 出现java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit运行时异常,主要原因是图 ...

  2. 【异常】java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher异常解决方法

    今天在做web项目时用到JSONObject,用的是MyEclipse自动导入的struts2的lib,其中自带了json-lib-2.1-jdk15.jar. 在struts2的action中已经导 ...

  3. 【android】java.lang.NoClassDefFoundError或classnotfount等异常错误

    在android上开发,当导入一个外部的包,可能会出现这类错误,我已经两次碰到了,一次是用科大讯飞的android开发包,另一次是用Jsoup包(html 解析). 解决方案: 先去掉加入的外部包 不 ...

  4. 【RabbitMQ】java.lang.NoClassDefFoundError: org/springframework/util/backoff/BackOff

    问题描述: Spring整合RabbitMQ时,配置了消费者监听之后启动报错如下: 解决方案: 目前项目中Spring版本为 3.2.8.RELEASE,spring-rabbit版本为1.7.5.R ...

  5. 【Flink】 java.lang.NoClassDefFoundError: org/apache/kafka/common/serialization/ByteArrayDeserializer

    自研flinsql提交平台,在服务器上新安装了一个flink客户端,准备提交flinksql到yarn,执行测试的时候报错 /data/flink/flink-1.13.3/bin/flink run ...

  6. 【日常Exception】第二十四回:nested exception is java.lang.NoClassDefFoundError: redis/clients/jedis/util/Pool

    热门系列: 程序人生,精彩抢先看 日常异常,是否也有你似曾相识的那一个 1.问题 近期遇到的一个异常问题如题所示,下面是完整的异常内容,原景重现: PropertyAccessException 1: ...

  7. SpringBoot运行出现异常解决: nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext

    今天在使用SpringBoot创建了一个项目出现如下异常 org.springframework.beans.factory.BeanCreationException: Error creating ...

  8. com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/p

    今天用 今天用easyexcel遇到这个报错 com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFound ...

  9. Java EE之Hibernate异常总结【5】java.lang.StackOverflowError[栈溢出]

    Java EE之Hibernate异常总结[5]java.lang.StackOverflowError[栈溢出] 参考文章: (1)Java EE之Hibernate异常总结[5]java.lang ...

最新文章

  1. c语言怎样在不足n位数的整数前补0,C# String 前面不足位数补零的方法
  2. python各种文件数据的读取
  3. 【Python进阶】Python进阶专栏栏主自述:不忘初心,砥砺前行
  4. 【ABAP】SAP供应商自定义决裁生成实现
  5. 关于栈的写入和延伸的方向
  6. Linux集群和自动化维1.4.2 优化Linux下的内核TCP参数以提高系统性能
  7. python2转python3代码_2to3 – 自动Python 2到3代码翻译 – 开发工具(Python教程)(参考资料)...
  8. android px,dp,sp大小转换工具
  9. 使用mysqladmin命令修改MySQL密码与忘记密码
  10. java实现鸭子类型,Golang的interface及duck typing鸭子类型
  11. VirtualBox下安装MacOS11
  12. Mybatis-Plus 使用自定义注入器后,查询条件中不再添加逻辑删除字段限定条件
  13. 曾有望成为第三大移动系统:如今正式告别,明日停止一切支持
  14. virtualenvwrapper
  15. 问题:自定义Appender输出DCMTK的oflog
  16. Python 科学计算库 Numpy 准备放弃 Python 2 了
  17. 【BZOJ4538】【HNOI2016】网络(树链剖分,线段树,堆)
  18. 微信终端跨平台组件 mars 开源
  19. 【图像处理】【去模糊】代码资源汇总
  20. 免费将pdf文件转换成word

热门文章

  1. VMware双网卡配置(ubuntu)
  2. 数学建模————统计问题之分类/聚类(二)
  3. 解决Failed to load D:\Android-Studio\sdk\build-tools\26.0.1\lib\dx.jar
  4. 好好学习-三种网络攻击模型
  5. 全栈工程师是如何炼成的?Node大神狼叔访谈
  6. JAVA全集-04-高级类特征1
  7. vue路由IE9浏览器iframe显示空白
  8. mysql pid文件太大_mariadb /mysql表文件太大导致的数据库启动不了 | Think in Drupal
  9. 计算机学院志愿者组织名称,计算机学院青年志愿者招募令
  10. mac装mac和window双系统