线程“主”中的异常java.lang.NoClassDefFoundError:org / hamcrest / Matchers

时间:2019-04-08 07:28:21

标签: java

为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");


    }

}

2 个答案:

答案 0 :(得分:1)

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>

答案 1 :(得分:0)

此异常告诉您在运行时,您的类路径不包含hamcrest库。

换句话说:您设法在“编译”步骤的类路径中显示了该库,但是您却以某种方式忘记了运行代码的时间。

因此,答案是退后一步,并确保在编译期间应用的类路径设置与用于运行已编译类的设置相匹配。因此,您可以手动执行此操作,也可以在IDE或构建工具中查看项目的定义。