我有一個有靜態final方法的類[說A,B,C]。靜態final方法的java.lang.NoClassDefFoundError
C調用另一個類D [D的包在C中導入]。
Maven組裝jar [說M.jar],我沒有包D。 在運行時,當我嘗試調用類路徑中具有M.jar的A時,獲取noclasdef錯誤,說D不存在。
爲什麼我得到這個?
package TEST1
import test.CHECK.TestA;
import test.CHECK.TestB;
class Factory
{
final static A()
{
//some ref to test.CHECK.TestA
}
static B()
{
//some ref to test.CHECK.TestB
}
static C()
{
}
我有一個jar包含此類和包test.CHECK.TestB在該jar中。但是,這個jar不包含test.CHECK.TestA。
現在,我的客戶端程序有這個jar調用C()
。 然後,獲取TestA的ClassNotFoundException,但我們沒有調用A()。這是爲什麼?
不要混淆代碼,變得很難理解 –
請在這裏發表您的代碼.. –
請提供更多的細節來說明你的問題 - 顯示出一些實際的代碼將上升答案 – mschenk74