![](/img/trans.png)
[英]“Exception in thread ”main“ java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing”
[英]Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/Matchers
为 RestAssured 运行此代码时出现此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/Matchers
at io.restassured.internal.ResponseSpecificationImpl.statusCode(ResponseSpecificationImpl.groovy:133)
at io.restassured.internal.ValidatableResponseOptionsImpl.statusCode(ValidatableResponseOptionsImpl.java:119)
at newclas.main(newclas.java:18)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.Matchers
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
这是我在我的系统上运行的一段代码:不确定如何解决导入问题。 已经尝试了几次进口,但没有奏效。
//import io.restassured.matcher.RestAssuredMatchers.*;
//import io.restassured.matcher.RestAssuredMatchers;
import static io.restassured.RestAssured.given;
import io.restassured.RestAssured;
import static org.hamcrest.Matchers.equalTo;
public class newclas {
public static void main(String[] args) {
// TODO Auto-generated method stub
RestAssured.baseURI="https://jsonplaceholder.typicode.com";
System.out.println("befoire given");
given().
header("Content-Type", "application/json").
when().
get("/users").
then().
assertThat().statusCode(200);
System.out.println("thank you ++ %d");
}
}
org.hamcrest.Matchers在您的课程路径中不可用
将以下依赖项添加到您的项目中
<!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-junit -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-junit</artifactId>
<version>2.0.0.0</version>
<scope>test</scope>
</dependency>
此异常告诉您在运行时您的类路径不包含 hamcrest 库。
换句话说:您设法让该库出现在“编译”步骤的类路径中,但是您在运行代码时以某种方式忘记了。
因此,答案是退后一步并确保在编译期间应用的类路径设置与用于运行已编译类的类路径设置相匹配。 因此,要么手动执行此操作,要么在 IDE 或构建工具中查看项目定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.