2012-04-25 121 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異常的「原因」鏈。

相關問題