Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/hamcrest/Matchers_Java - Fatal编程技术网

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

“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/hamcrest/Matchers,java,Java,运行此代码重新启动时出现此错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/Matchers at io.restassured.internal.ResponseSpecificationImpl.statusCode(ResponseSpecificationImpl.groovy:133) at io.restassured.internal.ValidatableResp

运行此代码重新启动时出现此错误:

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


    }

}
在类路径中不可用

将以下依赖项添加到项目中

<!-- 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>

org.hamcrest
汉克雷斯特朱松
2.0.0.0
测验

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

换句话说:您成功地将该库显示在“编译”步骤的类路径中,但不知何故,您忘记了何时运行代码


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

我们无法解决我们看不到的问题,请将您的代码包含到问题中。问题不是堆栈跟踪或您拥有并编译的代码:而是您触发编译的方式,而不是触发测试的实际“运行”方式。顺便说一句:您想了解java命名约定。类名应该总是大写。名称应该总是告诉读者一些事情,即使是“NewClass”也不会告诉读者任何事情。这假设用户正在使用Maven。如果他没有,或者IDE对他隐瞒了呢@幽灵猫是的,我同意你的看法。由于没有太多的细节我可以从一个问题,我建议检查依赖性。是的,谢谢你的更新。事实上,这个问题是由于hamcrest jar设置造成的,我已经添加了它,它得到了解决。我在Android Studio上,如何手动检查编译时类路径设置与运行时设置是否匹配?