2012-04-25 145 views
1

我在我的节目之一得到这个NoClassDefFoundError的:什么导致了这个NoClassDefFoundError错误?

10:26:56,893 ERROR [STDERR] Exception in thread "Timer-4" 
10:26:56,893 ERROR [STDERR] java.lang.NoClassDefFoundError: Could not initialize class 
    com.something.plugin.gameserver.common.MetricsRegistrar 
10:26:56,893 ERROR [STDERR] at com.something.plugin.gameserver.main.GameServerPlugin.init(GameServerPlugin.java:48) 

我知道它的类路径问题,但奇怪的是发生错误的GameServerPlugin类和MetricsRegistrar类公司寻找在同一个瓶子里。所以一个人不能在班级路上,另一个不是正确的?

我检查了Jar文件,它有问题的类文件,所以也没有问题。

该jar的INDEX.LIST还有一个MetricsRegistrar类的包的入口。我还应该检查什么?

为了完整起见,我使用Ant构建并在JBoss中运行。

+0

您的jar文件的子文件夹“com.something.plugin.gameserver.common”中的类是什么? – 2012-04-25 14:42:16

+0

在GameServerPlugin.java和post line 48中发布导入行,也许你的包裹结构在MetricsRegistrar.java居住的地方 – 2012-04-25 14:43:45

+0

@juergen yes是 – 2012-04-25 14:45:30

回答

2

在MetricsRegistrar的类初始化期间你正在做些什么吗?就像里面的代码

static { 
... 
} 

Here有人有过因为这个问题NoClassDefError。

2

这是一个插件问题: 您需要将您的类和导入添加到您的插件配置文件中。 另一方面,对于插件,插件配置文件(即ProjectName.plugin.xml)文件是在运行它的容器的第一次启动应用程序时读取的web.xml配置文件由您的使用此插件的应用程序引擎加载和读取。

0

通常,这意味着在异常中指定的类的静态初始化期间,或者它依赖的其他类中,引发(而不是捕获)未经检查的异常。

如果这是第一次尝试加载类加载,那么触发问题的异常应该是NoClassDefFoundError异常的“原因”链。

相关问题