JUnit-4.11使用报java.lang.NoClassDefFoundError: org/h

今天尝试使用JUnit,下载了最新的JUnit版本,是4.11,结果尝试使用发现老是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,通常的解决方案是,换一个低一点的版本就行了。还有人说,是缺乏hamcrest的包。去官网又看了一下,结果发现这样一段话: java

  • 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包了,不知道做者是怎么想的。 maven


最好的解决方法是: 替换低版本的junit.jar ui


使用是导入包的方案:junit.jar + hamcrest-core.jar + hamcrest-library.jar this

或者是:junit-dep.ajr+hancrest-all.jar spa

这两种导入方法虽然尽可能避免了导入重复的包,但使用时仍是遇到了冲突。查看包中各种和文档后发现有些类(例如:断言is())同时出如今了org.hamcrest.Mathchers和org.hamcrest.core中,则在用到时候引入的时候须要注意。 rest

相关文章
相关标签/搜索