码迷,mamicode.com
首页 > 编程语言 > 详细

java.lang.NoClassDefFoundError: Could not initialize class xxx 原因

时间:2018-12-04 15:39:00      阅读:1494      评论:0      收藏:0      [点我收藏+]

标签:它的   ring   xxx   程序   工具   分享   lang   util   stl   

一、问题及原因

程序里有个工具类,主要是调用它的静态方法来发送mq。

调用场景如下:

技术分享图片

 

结果这两天报了个错:

java.lang.NoClassDefFoundError: Could not initialize class com.ceiec.rabbitmqservice.utils.MQMessageSender

 

后来大概看了下,这个类的class文件是存在的。而且报的错也不是class找不到之类的。

翻了下svn记录,发现新增了一个static变量,这个变量的初始化会失败。(因为spring配置文件忘配置了)

把配置文件改了就好了。

所以,这个问题原因就是static变量的初始化失败导致。

这里,也可以看出加载时机,因为在程序启动过程是没报错的。是实际代码走到这个地方的时候,发现需要调用该类的静态方法,但是呢

发现该类还没有被加载,于是进行加载、初始化等。

技术分享图片

 

二、参考资料

JVM类生命周期概述:加载时机与加载过程

 

java.lang.NoClassDefFoundError: Could not initialize class xxx 原因

标签:它的   ring   xxx   程序   工具   分享   lang   util   stl   

原文地址:https://www.cnblogs.com/grey-wolf/p/10064164.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!