原文引自: http://blog.csdn.net/castle07/article/details/8553704java
今天嘗試使用JUnit,下載了最新的JUnit版本,是4.11,結果嘗試使用發現老是報java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing這樣的錯誤,上網查了一下,通常的解決方案是,換一個低一點的版本就行了。還有人說,是缺乏hamcrest的包。去官網又看了一下,結果發現這樣一段話:maven
junit.jar
: Includes the Hamcrest classes. The simple all-in-one solution to get started quickly.Starting with version 4.11, Hamcrest is no longer included in this jar.junit-dep.jar
: Only includes the JUnit classes but not Hamcrest. Lets you use a different Hamcrest version.注意黑色加下劃線的部分。說明4.1.1中沒有hamcrest包了,不知道做者是怎麼想的。ui
最好的解決方法是:this
使用是導入包的方案:junit.jar + hamcrest-core.jar + hamcrest-library.jarspa
或者是:junit-dep.ajr+hancrest-all.jar.net
這兩種導入方法雖然儘可能避免了導入重複的包,但使用時仍是遇到了衝突。查看包中各種和文檔後發現有些類(例如:斷言is())同時出如今了org.hamcrest.Mathchers和org.hamcrest.core中,則在用到時候引入的時候須要注意。rest