我理解的解决方案是确保在hamcrest之后加载Junit。我有一个Intellij项目,在其中设置了一个外部库,该库包含JUnit、JMock和Hamcrest。如何确保不会出现这个错误?
我理解的解决方案是确保在hamcrest之后加载Junit。我有一个Intellij项目,在其中设置了一个外部库,该库包含JUnit、JMock和Hamcrest。如何确保不会出现这个错误?
您应该确保库(jars)的兼容性。如果jar中的类使用另一个jar中的类的某个方法,并且此使用的方法是新添加的,而您正在使用旧的jar,则肯定会出现java.lang.NoSuchMethodError
。
你需要导入junit-dep.jar(它不包括hamcrest依赖项!?)而不是junit.jar。如果你在一个大型项目中使用Maven,这可能涉及到追踪所有模糊的hamcrest和junit导入。
即将发布的junit版本将与hamcrest 1.3兼容,这可能会有所帮助。