1. 程式人生 > >java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing 錯誤解決思路

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing 錯誤解決思路

在使用Junit單元測試後:出現了錯誤 錯誤程式碼如下: 在這裡插入圖片描述

NoClassDefFoundError可能出現的情況

目前有發現幾種情況 1、一種情況就是因為靜態變數載入不到原因 2、工程裡沒有將jar新增到classpath,maven專案的,需要根據專案情況排查。

解決方式1: 首先檢視junit 版本 是否是4.11以上的,然後我通過junit 官網(官網百度junit即可)去查看了下這個 hamcrest 類 在4.10和4.11上都能找到,但是4.12就找不到了。 如果junit是4.12 的 降低版本即可。

解決方式2: 就是匯入 hamcrest 這個類,也就是到jar包了 匯入hamcrest-core-1.3.jar

(兩種方式都可以,不過建議使用第一種,簡單方便。)

不過要注意的是 NoClassDefFoundErrorClassNotfoundException異常出現原因類似,都是因為編譯載入不到類導致的,但是卻有本質的區別。

兩者的本質區別就是: ClassNotfoundException時在編譯時JVM載入不到類或者找不到類導致的; 而NoClassDefError是在執行時JVM載入不到類或者找不到類