selfdescribing para org intellij descargar and java eclipse junit noclassdeffounderror hamcrest

java - para - junit download and install



java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing (14)

Agrega hamcrest-all-XXjar a tu classpath .

La última versión de febrero de 2015 es 1.3: http://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-all-1.3.jar&can=2&q=

Mientras junit prueba junit en eclipse , recibo esta Exception :

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

He agregado el archivo de la biblioteca junit.jar .

He probado diferentes versiones de junit.jar: 4.4 , 4.8 , etc.

¿Cómo soluciono esta excepción?


Algunos pasos que debes seguir:

  1. Haga clic derecho en el proyecto.
  2. Elija Build Path Luego, en su menú, elija Add Libraries.
  3. Elige JUnit y luego haz clic en Siguiente.
  4. Elige JUnit4 y luego Termina.

Como regla general, siempre asegúrese de que hamcrest esté antes de otras bibliotecas de prueba en el classpath, ya que muchas de estas bibliotecas incluyen clases de hamcrest y, por lo tanto, pueden entrar en conflicto con la versión de hamcrest que está utilizando. Esto resolverá la mayoría de los problemas del tipo que describes.


De acuerdo con el sitio web del equipo JUnit GitHub ( https://github.com/junit-team/junit/wiki/Download-and-Install ), junit.jar y hamcrest-core.jar son necesarios en el classpath cuando se usa JUnit 4.11 .

Aquí está el bloque de dependencia Maven para incluir Junit y Hamcrest.

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


El problema es cuando configura eclipse para apuntar a JRE en lugar de JDK . JRE tiene junit4.jar en la carpeta lib/ext , pero no en hamcrest.jar :) Por lo tanto, la solución es verificar los JRE instalados en Eclipse, eliminar el existente y crear uno nuevo que apunte a su JDK .


En caso de que haya alguien aquí que use netbeans y tenga el mismo problema, todo lo que tienes que hacer es

  • Haga clic derecho en TestLibraries
  • Haga clic en Agregar biblioteca
  • Seleccione JUnit y haga clic en agregar biblioteca
  • Repita el proceso, pero esta vez haga clic en Hamcrest y haga clic en Agregar biblioteca

esto deberia resolver el problema


Este problema se debe a tu classpath miss hamcrest-core-1.3.jar. Para resolver esto, agregue hamcrest-core-1.3.jar a medida que agrega junit-4.XX.jar en su classpath.

Al principio, me encuentro con este problema también, pero después de consultar el sitio oficial y agregar hamcrest-core-1.3.jar en classpath con línea de comandos, funciona correctamente finalmente.

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


Esto sucede cuando ejecuta Ant a través de la línea de comando. Las dependencias implícitas del usuario se agregan en el classpath al final y tienen prioridad sobre el classpath agregado al proyecto. Ejecutar Ant con la bandera -nouserlib . Las dependencias implícitas se excluirían de la ruta de clase.


Funciona para mí: IntelliJ IDEA 13.1.1, JUnit4, Java 6

Cambié el archivo en la ruta del proyecto: [PROJECT_NAME] .iml

Reemplazado:

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

Por:

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

Entonces el archivo .iml final es:

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

PD: guarda el archivo y no lo dejes a IntelliJ Idea, vuelve a cargarlo. Sólo una vez.


La forma más sencilla de resolver el problema es copiar la última versión de hamcrest-code.jar en CLASSPATH, que es el archivo donde almacena otros archivos .jar necesarios para compilar y ejecutar su aplicación.

eso podría ser, por ejemplo: C: / ant / lib


Necesitas junit-dep.jar porque junit.jar tiene una copia de las antiguas clases de Hamcrest.


Si surge este problema en un proyecto de RCP, puede ser porque JUnit se ha importado explícitamente.

Compruebe el editor de su plugin.xml en la pestaña Dependencies , elimine org.junit de los paquetes importados y agregue org.junit a los complementos necesarios.


Suena como un problema de classpath, por lo que hay algunas formas diferentes de hacerlo. ¿De dónde viene org / hamcret / SelfDescribing? ¿Es esa tu clase o en un frasco diferente?

Intente ir a la ruta de compilación de su proyecto y en la pestaña Bibliotecas, agregue una biblioteca. Debería poder elegir JUnit para su proyecto. Esto es un poco diferente que solo tener el archivo jar JUnit en su proyecto.

En su configuración de ejecución para la prueba JUnit, verifique el Classpath. Probablemente puedas arreglar esto agregando asegurándote de que tu Classpath pueda ver esa clase SelfDescribing allí. La opción Ejecutar en Eclipse tiene un conjunto diferente de opciones para las opciones JUnit.


Tuve el mismo problema, la solución es agregar en compilación / plugin el jar org.hamcrest.core_1xx, puedes encontrarlo en eclipse / plugins.