2012-05-02 60 views
2

的NoClassDefFoundError給了我不同種類的消息在不同的上下文NoClassDefFoundError的消息與上下文不同

通過上下文,我的意思是,

語境1: 如果我刪除sapjco3.jar,該消息是

java.lang.NoClassDefFoundError: com/xxx/xxx/AbapException 

上下文2: 如果我將jar文件添加到webapp lib中,則消息是

java.lang.NoClassDefFoundError: com.xxx.xxx.CpicDriver 

據我所知,java.lang.NoClassDefFoundError是在運行時沒有找到類時拋出的。

但爲什麼在消息中表示類有差別,即斜槓(路徑)和點(包)?

+0

感謝您編輯@Alexander。 – Rajesh

回答

2

如果你看看javadoc的NoClassDefFoundError exception,你會看到它有兩個構造函數,其中一個接受一個消息作爲參數。

因此,未找到類的名稱的格式取決於拋出異常的代碼。

我不知道sapjco,但也許這兩個類是通過型動物類加載器加載...

0

看起來像java.lang.NoClassDefFoundError:com/xxx/xxx/AbapException缺失。這不在sapjco3.jar中。

假設需要a.class和b.class,加載的順序是a,b。如果a和b不在classpath中,您將首先得到一個缺失。如果在類路徑中添加了a,您將會缺少b。希望很明顯。

相關問題