【exception】java.lang.NoClassDefFoundError Could not initialize class

运行报错【java.lang.NoClassDefFoundError: Could not initialize class】:这儿的原因是Mapper xml中SQL标签的id重复了。 运行时发现报错信息是169行 然后,检查169行的代码(自然包括169行调用的代码啦)并没有发现明显的问题,然后我们可以注释掉169行的代码,然后重新运行,比如: 此时的运行报错信息如下: "C:\Program Files\Java\jdk1.8.0_162\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3. 阅读详情

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

过程

  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 in thread “AWT-EventQueue-0“: java.lang.NoClassDefFoundError出现问题怎么解决 matlab2022a安装后出现Exception in thread "AWT-EventQueue-0": java.lang.NoClassDefFoundError: Could not initialize class com.mathworks.mlwidgets.help.HelpPrefs问题该怎么解决,已经重装过几次了,求大神帮忙解决一下。 阅读详情

相关推荐

基于LightGBM和多模型融合的量化交易研究:沪深300为例【附代码】

📊 数据科学与大数据专业 | 数据分析与模型构建 | 数据驱动决策✨ 专业领域:数据挖掘与清洗大数据处理与存储技术机器学习与深度学习模型数据可视化与报告生成分布式计算与云计算数据安全与隐私保护💡 擅长工具:Python/R/Matlab 数据分析与建模Hadoop/Spark 大数据处理平台SQL数据库管理与优化Tableau/Power BI 数据可视化工具TensorFlow/PyTorch 深度学习框架✅数据科学与大数据技术毕业论文【数据】

lagougongzuoshi的博客 1669

【异常解决】Java运行时发生 java.lang.NoClassDefFoundError: Could not initialize class com.iot.alarm.ProcAlar

是由于 JVM 或 ClassLoader 实例为了调用某个类的方法或 new 类的新的实例,而试图加载该类的定义时,却无法找到其定义,而抛出的异常。需要注意,对于抛出该异常的情况,试图找到的类的定义在编译时存在,只是在运行时不知所踪。实例导致的,那么我们就可以从类中找出与它有关的代码然后修改掉即可。对于我来说,这段代码我先注释掉了,不影响业务,或者是写出能代替的方案即可。或者如果是缺少类,则把缺少的类添加上即可。Springboot + JDK1.8,程序正常编译通过,运行时调用某个类后抛出异常。

No8g攻城狮的博客 3万+

Classic AUTOSAR精讲专栏目录

欢迎大家来到钢琴上的汽车软件创建的《Classic AUTOSAR精讲系列专栏》,期待在这里能够与大家一起进步,分享成功,分享喜悦!下面蓝色的文章标题都是传送门,点击直接跳转到对应文章。

酒无忧的博客 3903

java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Ja【已解决】

Mac 问题 Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7 at org.codehaus.groovy.vmplugin.VMPluginFactory.

丿灬安之若死 1万+

【雕爷学编程】Arduino动手做(111)---震动提醒模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

雕爷学编程 1898

linux那些事之numa balance

numa balance numa balance是页迁移技术最重要也是最开始使用应用的技术,主要是为解决由于调度器进程在两个node迁移造成访问内存性能问题。 numba balance通过页迁移技术,将不在运行节点的内存迁移到所运行的节点上。对应numa balance要注意几点: 防止进程在两个节点之前来回切换造成频繁进行页迁移(ping pang现场)从而影响性能。numa balance本身就是为了提高性能,不能因为造成频繁页迁移而对性能进行一个反向优化。 多个线程分布在不同线程 访.

weixin_42730667的博客 3908

java 异常之java.lang.NoClassDefFoundError: Could not initialize class

异常处理之java.lang.NoClassDefFoundError

冷萃美式的博客 2万+

C语言使用开源库libusb进行USB设备操作

https://libusb.info/libusb is a C library that provides generic access to USB devices. It is intended to be used by developers to facilitate the production of applications that communicate with USB hardware. It is portable: Using a single cross-platform AP

m0_60352504的博客 1553

java.lang.NoClassDefFoundError: Could not initialize class xxx 原因及解决方法

NoClassDefFoundError产生的原因有好几种,这里记录静态变量或静态块引起的。具体抛出的异常类似: java.lang.NoClassDefFoundError: Could not initialize class xxx JVM在加载类的时候,会初始化类里的静态变量,或执行静态块,如果这个时候抛出了异常,该类就会加载失败,那么以后任何使用到这个类的地方,都会抛出NoClass...

轻松囧的专栏 22万+

Quuppa 如何引领蓝牙 ® 定位服务的全新发展方向

我们最优质的客户,是那些对其他实时定位系统(RTLS)的承诺感到失望、转而寻求 “能覆盖全业务场景的更广泛赋能技术” 的客户 —— 前文提到的消防车制造商就是典型案例:他们尝试并通过 Quuppa 的蓝牙方案取得了成功。我们希望业务合作伙伴(如系统集成商、解决方案提供商)能充分利用 Quuppa 智能定位系统的功能,为客户提供专属解决方案:无论是追踪微型标签、实现未来移动设备的 AoD 功能,还是基于 RSSI 的简单信标(信标作为物联网网关),这些功能都能让同一套 Quuppa 系统支持广泛的用例。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 831

EMC基础知识总结

电磁干扰(Electromagnetic Interference),简称EMI,有和两种。传导干扰主要是电子设备产生的干扰信号通过导电介质或公共电源线互相产生干扰;辐射干扰是指电子设备产生的干扰信号通过空间耦合把干扰信号传给另一个电网络或电子设备。

学海无涯的专栏 1364

Exception in thread “main“ java.lang.NoClassDefFoundError: Could not initialize class

** 关于java连接数据时报“Exception in thread “main” java.lang.NoClassDefFoundError: Could not initialize class”的问题解决 ** 像大家一样,我也是遇到这个问题的开发者,然后在网上一通搜索,然后问题仍然不能解决! 我搜到的答案大部分都是这样的: NoClassDefFoundError产生的原因有好几种,这里记录静态变量或静态块引起的。具体抛出的异常类似: java.lang.NoClassDefFoundErro

qq_28424051的博客 6701

姿态传感器/陀螺仪之IIS2DLPC 应用驱动程序设计

* 转换为°C单位 (参考温度为25°C,灵敏度为16 LSB/°C) */

corlin6688的博客 219

解决linux下访问后台报错 nested exception is java.lang.NoClassDefFoundError: Could not initialize class

项目在Windows下启动不报错,在Linux下启动报错如下,主要报错信息如下所示。 20-Jun-2019 19:28:16.188 SEVERE [http-nio-8080-exec-2] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [springMvc] in co...

quanbugu的博客 5190

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class xxx

使用java -cp xx.jar xxx类名 命令执行java程序报错: Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class com.guess.util.JdbcUtils at com.guess.util.WordsUtils.truncateTable(WordsU...

weixin_42496757的博客 3789

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.

问题:运行jmeter的时候,后台报了Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory. See log file for details. 解决: 只需要进入lib/ext 文件夹内中的ApacheJMeter_m...

qq_30442413的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Exception in thread “main“ java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.f

试了很多解决办法 其实就是ffmpeg包的问题 改成ffmpeg-platform就可以了。

qq_35946365的博客 893

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.fusesource

最近用hive连接数据库进行操作时出现了Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.fusesource的错误,仔细检查了代码,发现没有错,几经周折最后终于找到了最简单的解决的方法。最后在stackoverflow上找到了解决的方法,于是在代码加上了点击打开链接 ...

aijava1的博客 2950

exception java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

exception java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment CreationTime--2018年9月5日17点09分 Author:Marydon 1.情景展示   在linux服务器下,运行的tomcat,通过java绘制图片的时候报错信...

weixin_30591551的博客 136

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class TestJdbc.JDBCU

数据库初始化报错: Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class TestJdbc.JDBCUtil 检查小半天,刚开始以为是包导错了,remove,重新导入;还是报错,最后才发现是 jdbcutil的资源配置路径写错了,改正即可,以后要小心点了。。。。。。。。...

最爱不过土豆泥的博客 2533

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class cn.itcast.java

在初学mybatis的时候,出现这样的错误,找半天没找到,突然灵感一来,感觉好像配置文件有错,就是总的配置文件batis.xml中配置子配置文件coursemapper.xml和student.xml的路径有错,才会出现这样的问题,但是不知道为什么报工具类初始化错误,有待进一步发掘。。 Exception in thread “main” java.lang.NoClassDefFoundErr...

szh199317的博客 2664

执行jar脚本时提示nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.xxxx.xx

今天启动脚本的时候,发现脚本执行报错,提示堆栈: log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext). log4j:WARN Please initialize the log4j system properly...

huangweijian93的博客 1万+

关于java.lang.NoClassDefFoundError: Could not initialize class xxx错误的原因和处理办法

关于NoClassDefFoundError错误出现的原因有多种,网上其他博主也给出各种答案,但说的都比较广泛。 这里博主说一下由于初始化失败而造成的NoClassDefFoundError错误。 博主在一个Test这个类中使用了静态代码块,类构造如下所示: public class Test { private static int i = 0; static { //放一个除0操作...

weixin_41644977的博客 1万+
上一篇: 【exception】cxf can‘t find request url for Observer
下一篇: 【kafka】kafka集群的搭建、用户的设置和权限的控制
ColdFireMan
博客等级 码龄10年 27粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值