與dnsjava圖書館工作,我遇到一個令人沮喪和混亂的問題,我可以正確地調用Type.A
但調用Type.value(str)
拋出一個java.lang.NoClassDefFoundError
。java.lang.NoClassDefFoundError拋出靜態方法而不是靜態成員
System.out.println(org.xbill.DNS.Type.A); // works
if (org.xbill.DNS.Type.value(type) == -1) { // throws NoClassDefFoundError
/* logic */
}
此代碼正在從jar
和其它類在罐子正確地使用的庫執行。
爲什麼會發生這種情況?我怎樣才能進一步調試呢?
謝謝!
編輯
喬恩斯基特是正確的。一個朋友向我展示瞭如何使用javap -c
和我改變了價值的東西更獨特,Type.AAAA,其中有28值:
878: getstatic #116; //Field java/lang/System.out:Ljava/io/PrintStream;
881: bipush 28
添加'-verbose:class'命令行參數是否顯示了一些內容?通常,當你得到這個錯誤時,它是一個不同的類,它被你想要加載的類所引用。 – biziclop 2012-03-02 22:05:06
您能否顯示NoClassDefFoundError的完整堆棧跟蹤?這個錯誤至少在三種不同的情況下引發。 – 2012-03-02 22:05:26