奇怪的NoClassDefFoundError异常

时间:2017-05-12 16:04:57

标签: java noclassdeffounderror

我得到一个奇怪的NoClassDefFoundError异常案例。我的应用程序部署在WebLogic 12c上并在那里运行了几个月。在其中一个类中,我正在对类中定义的方法进行静态调用,该类是JAR的一部分,并且JAR位于我的受管服务器的类路径中。一切都很好,直到我突然开始得到" NoClassDefFoundError"对于那个特定的班级。我的JAR没有改变,调用类没有改变,类路径也没有改变。我通过JVisualVM检查了CLASSPATH,我的JAR文件就在那里。

我想知道是否有任何方法可以通过Java实用程序或其他工具找出原因。

1 个答案:

答案 0 :(得分:0)

如果它已经运行了很长时间,那么包含静态方法和类定义的PermGen内存可能会收集该类定义的垃圾,以便用其他内容替换它。一旦你尝试调用静态方法,该类将再次被初始化,但如果在初始化时失败(例如你从静态方法中分配静态字段的值,最终抛出异常),那么类赢了初始化,当您尝试访问它时,您将获得NoClassDefFoundError