programing

java.displaces를 클릭합니다.No Class Def Found Error : org / hamcrest / Self Describing

shortcode 2023. 1. 19. 07:16
반응형

java.displaces를 클릭합니다.No Class Def Found Error : org / hamcrest / Self Describing

juniteclipseException:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

추가했습니다.junit.jar라이브러리 파일

junit.jar의 다른 4.4,4.8 등등.

이 예외를 수정하려면 어떻게 해야 하나요?

hamcrest-all-X.X.jar당신의 클래스 패스로요.

2015년 2월 현재 최신 버전은 1.3 입니다.http://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-all-1.3.jar&can=2&q =

JUnit GitHub 팀 웹사이트(https://github.com/junit-team/junit/wiki/Download-and-Install),에 따르면junit.jar ★★★★★★★★★★★★★★★★★」hamcrest-core.jar4.사용하는 클래스 에 둘 다 합니다.

이것은 Junit과 Hamcrest를 포함하기 위한 Maven 의존관계 블록입니다.

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.1.2</version>
    <scope>test</scope>
</dependency>
<!-- Needed by junit -->
<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-all</artifactId>
    <version>1.3</version>
    <scope>test</scope>
</dependency>

몇 가지 절차를 따라야 합니다.

  1. 프로젝트를 오른쪽 클릭합니다.
  2. 메뉴에서 Build Path를 선택한 다음 Add Libraries를 선택합니다.
  3. JUnit을 선택하고 Next를 클릭합니다.
  4. JUnit4를 선택하고 Finish를 선택합니다.

인텔리J IDEA 13.1.1, JUnit4, Java 6 지원

프로젝트 경로의 [PROJECT_NAME.iml] 파일을 변경하였습니다.

대체:

  <library>
    <CLASSES>
      <root url="jar://$APPLICATION_HOME_DIR$/lib/junit-4.11.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />
  </library>

기준:

  <library name="JUnit4">
    <CLASSES>
      <root url="jar://$APPLICATION_HOME_DIR$/lib/junit-4.11.jar!/" />
      <root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-core-1.3.jar!/" />
      <root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-library-1.3.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />
  </library>

마지막 .iml 파일은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="module-library">
      <library name="JUnit4">
        <CLASSES>
          <root url="jar://$APPLICATION_HOME_DIR$/lib/junit-4.11.jar!/" />
          <root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-core-1.3.jar!/" />
          <root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-library-1.3.jar!/" />
        </CLASSES>
        <JAVADOC />
        <SOURCES />
      </library>
    </orderEntry>
  </component>
</module>

추신: 파일을 저장하고 IntelliJ Idea에 다시 로드하지 마십시오.딱 한 번만.

junit-dep.jar가 필요한 이유는 junit.jar가 오래된 Hamcrest 클래스의 복사본을 가지고 있기 때문입니다.

혹시 여기 팥을 사용하는 사람이 있는데 같은 문제가 있는 경우, 당신이 해야 할 일은 이것뿐입니다.

  • TestLibraries 우클릭
  • 라이브러리 추가를 클릭합니다.
  • JUnit을 선택하고 라이브러리 추가를 클릭합니다.
  • 프로세스를 반복하지만 이번에는 [Hamcrest]를 클릭하여 [Add Library]을 클릭합니다.

이것으로 문제가 해결됩니다.

이 문제는 클래스 패스의 miss hamcrest-core-1.3.jar가 원인입니다.이 문제를 해결하려면 junit-4를 추가할 때 hamcrest-core-1.3.jar를 추가합니다.XX.jar를 클래스 패스에 넣습니다.

처음에는 저도 이 문제가 발생하지만 공식 사이트를 참조하여 명령줄을 사용하여 클래스 패스에 hamcrest-core-1.3.jar를 추가하면 정상적으로 동작합니다.

javac -d ../../../../bin/ -cp ~/libs/junit-4.12.jar:/home/limxtop/projects/algorithms/bin  MaxHeapTest.java 

java -cp ../../../../bin/:/home/limxtop/libs/junit-4.12.jar:/home/limxtop/libs/hamcrest-core-1.3.jar org.junit.runner.JUnitCore com.limxtop.heap.MaxHeapTest

다음 설명에 따라 hamcrest-core JAR을 클래스 경로에 추가해야 합니다.https://github.com/junit-team/junit4/wiki/Download-and-Install

일반적으로 클래스 경로 상의 다른 테스트 라이브러리보다 햄크레스트가 먼저 있는지 확인합니다.이러한 라이브러리의 대부분은 햄크레스트 클래스를 포함하고 있기 때문에 사용하고 있는 햄크레스트 버전과 경합할 수 있습니다.이렇게 하면 설명하는 유형의 문제가 대부분 해결됩니다.

문제를 해결하는 가장 간단한 방법은 최신 버전의 hamcrest-code.jar를 CLASSPATH에 복사하는 것입니다.이 파일은 응용 프로그램의 컴파일 및 실행에 필요한 다른 .jar 파일을 저장하는 파일입니다.

예를 들어 다음과 같습니다.C:/ant/lib

수업경로 문제처럼 들리므로 몇 가지 다른 방법이 있습니다.org/hamcret/SelfDescription은 어디서 유래한 것입니까?그게 네 반이야, 아니면 다른 병이야?

프로젝트 빌드 경로로 이동하여 라이브러리 탭에서 라이브러리를 추가하십시오.프로젝트에 JUnit을 선택할 수 있어야 합니다.이건 자네 프로젝트에 JUnit jar 파일을 가지고 있는 것과는 좀 다르네

JUnit의 Configuration 실행 테스트에서 Classpath를 확인합니다.Classpath에서 SelfDescribing 클래스가 표시되는지 확인함으로써 이 문제를 해결할 수 있습니다.Eclipse의 실행 옵션에는 JUnit 옵션에 대한 다른 옵션 세트가 있습니다.

RCP 프로젝트에서 이 문제가 발생할 경우 JUnit이 명시적으로 Import되었기 때문일 수 있습니다.

에 있는 「」를해 주세요.plugin.xml아래Dependencies ', '를 합니다.org.junitorg.junit이치노

문제는 JDK가 아닌 JRE를 가리키도록 이클립스를 설정하는 경우입니다.JRE는junit4.jar lib/ext, 폴더는 없습니다.hamcrest.jar:) 솔루션은 Eclipse에 설치된 JRE를 확인하고 기존 JRE를 제거한 후 JDK를 가리키는 새 JRE를 작성하는 것입니다.

이 문제는 명령줄에서 개미를 실행할 때 발생합니다.암묵적인 사용자 종속성은 마지막에 클래스 경로에 추가되며 프로젝트 추가 클래스 경로보다 우선합니다.깃발을 들고 개미에게 달려라.암시적 종속성은 클래스 경로에서 제외됩니다.

이 문제를 해결할 더 좋은 답이 있다.종속성을 더하다

<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-all</artifactId>
    <version>1.3</version>
    <scope>test</scope>
</dependency>

maven 저장소에서 사용할 수 있는hamcrest-core-1.3.jar는 권장되지 않습니다.

다운로드 ★★★★★★★★★★★★hamcrest-core-1.3.jarJunit4 github 공식 링크에서.maven 저장소에서 다운로드하려면 최신 버전을 사용하십시오.hamcrest-XX.jar.

<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest</artifactId>
    <version>2.2</version>
    <scope>test</scope>
</dependency>

같은 문제가 있었습니다.해결 방법은 빌드 경로/플러그인 org.hamcrest.core_1xx에 추가하는 것입니다.이클립스/플러그인에서 찾을 수 있습니다.

몇 가지 절차를 따라야 합니다.

  • 프로젝트를 오른쪽 클릭합니다.
  • [ Build Path ]를 선택하고 메뉴에서 [Add Libraries]를 선택합니다.
  • JUnit을 선택하고 Next를 클릭합니다.
  • JUnit4를 선택하고 Finish를 선택합니다.

난 이거면 되는데...

"198.1994.보안.예외: class" org.hamcrest."메쳐의 서명자 정보가 동일한 패키지에 포함된 다른 클래스의 서명자 정보와 일치하지 않습니다."

실행: 패키지를 우클릭하여 빌드 경로 -> 빌드 경로 구성 라이브러리 탭을 클릭하여 JUnit 적용 삭제 후 준비 종료합니다.

jar 파일을 수동으로 추가하거나 최신 hamcrest.jar를 사용하여 force update를 시도합니다.

언급URL : https://stackoverflow.com/questions/14539072/java-lang-noclassdeffounderror-org-hamcrest-selfdescribing

반응형