java - plugin - mvn eclipse eclipse
Eclipse-java.lang.ClassNotFoundException (30)
¡El enfoque de Carlos ayudó! Eclipse - java.lang.ClassNotFoundException
Intente verificar el classpath de la configuración de ejecución de junit:
- Abra sus configuraciones de ejecución
- Haga clic en jUnit-Test que desea iniciar
- ve a la pestaña classpath
- Intente agregar una carpeta (haga clic en las entradas de usuario, haga clic en Avanzado, haga clic en agregar carpetas, haga clic en Aceptar y busque la carpeta de salida para sus clases de prueba (las que encuentre en projektproperties ruta de compilación java, fuente))
funciona para mi.
Al intentar iniciar mi JUnit-Test fuera de Eclipse, obtengo una "ClassNotFoundException". Al ejecutar "mvn test" desde la consola, todo funciona bien. Además, no hay problemas informados en Eclipse.
Mi estructura de proyecto es la siguiente:
- proyecto principal (pom-packaging)
- Proyecto web (embalaje de guerra: mi JUnit-test está aquí)
- Proyecto Flex
- Proyecto de configuración
editar: ¿Cómo no se puede encontrar la clase? Es una aplicación HelloWorld simple sin bibliotecas especiales.
Aquí está la configuración de ejecución de mi JUnit: alt text http://www.walkner.biz/_temp/runconfig.png
Testclass (pero como dije, tampoco funciona con HelloWorld simple ...):
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import biz.prognoserechnung.domain.User;
import biz.prognoserechnung.domain.UserRepository;
import biz.prognoserechnung.domain.hibernate.UserHibernateDao;
public class UserDaoTest {
/**
* the applicationcontext.
*/
private ApplicationContext ctx = null;
/**
* the user itself.
*/
private User record = null;
/**
* Interface for the user.
*/
private UserRepository dao = null;
@Before
public void setUp() throws Exception {
String[] paths = { "WEB-INF/applicationContext.xml" };
ctx = new ClassPathXmlApplicationContext(paths);
dao = (UserHibernateDao) ctx.getBean("userRepository");
}
@After
public void tearDown() throws Exception {
dao = null;
}
@Test
public final void testIsUser() throws Exception {
Assert.assertTrue(dao.isUser("John", "Doe"));
}
@Test
public final void testIsNoUser() throws Exception {
Assert.assertFalse(dao.isUser("not", "existing"));
Assert.assertFalse(dao.isUser(null, null));
Assert.assertFalse(dao.isUser("", ""));
}
}
¡Tenía exactamente el mismo problema pero lo descubrí! Vaya a su archivo de proyecto y haga clic derecho sobre él, luego haga clic en Refresh
o presione F5. Entonces intenta y ejecuta. Si todavía no funciona, olvídalo, ya que tuve el mismo problema EXACTO y solo significa que tu versión de Eclipse es basura.
¿Has intentado hacer clic derecho en la raíz de tu proyecto, seleccionar "propiedades" y asegurarte de que CLASSPATH sea correcta? Si recuerdo correctamente, así es como lo haces.
¿Algo sobre la forma en que Eclipse ejecuta pruebas unitarias que requieren agregar el jAR junit al tiempo de ejecución CLASSPATH de una manera especial?
Yo uso IntelliJ, entonces no tengo estos problemas.
Verificaría Eclipse yo mismo, pero prefiero no tenerlo en mi escritorio.
Además, DOUBLE-CHECK el dialogo de eclipse "Web Deployment Assembly".
Esto se puede encontrar: Propiedades del proyecto-> Ensamblaje de implementación.
Recientemente tuve un plugin de eclipse para modificar uno de mis proyectos web, y agregó ~ misteriosamente ~ agregó los directorios de prueba maven / src / test / java, / src / test / resources al ensamblado de implementación. UGGGG !!!
Por eso mi proyecto funcionó bien cuando construí e implementé maven directamente a tomcat, no ClassNotFoundExceptions ... Sin embargo, cuando lo implementé a través de Eclipse, Whammo !! Empiezo a recibir ClassNotFoundExceptions porque el TestCode se está implementando.
Eric
Aquí hay muchas sugerencias complicadas.
He encontrado este problema varias veces con proyectos de Maven después de mover los recursos arrastrando y soltando, o realizando refactorizaciones de nombres de clases.
Si esto ocurre, simplemente copie (no mueva) el problema Caso de prueba ( .java
) a través de la terminal / buscador de archivos a otra ubicación, right-click -> Delete
en Eclipse y elija eliminar en el disco cuando se le dé la opción, mueva / copie el copiado en la ubicación original del archivo, luego seleccione su proyecto en Eclipse y presione F5 para actualizar los recursos.
Esto es rápido y fácil de hacer, y siempre solucionó el problema de forma permanente.
Asegúrese de que la configuración de inicio de la prueba NO contenga las siguientes líneas, O intente habilitar la administración de dependencias automática de Maven.
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>
Cambiando el orden de los artefactos de la ruta de clase en la ruta de compilación de Java lo resolvió por mí.
- Haga clic derecho en el proyecto y vaya a la ruta de compilación del proyecto.
- Vaya a la pestaña Ordenar y exportar y mueva la biblioteca del sistema JRE a las fuentes.
Esto debería arreglarlo.
El problema puede estar perdiendo el archivo de clase en su carpeta de compilación. Una solución es limpiar el proyecto y reconstruirlo.
Eliminar el proyecto de eclipse (no del disco duro) que de alguna manera es limpiar el área de trabajo y volver a importar el proyecto a eclipse me funcionó de nuevo.
Eso significa que tu pom.xml tiene problemas sin resolver. Abra la vista de problemas para resolver en consecuencia. Entonces podrá ejecutar los casos de prueba con éxito sin encontrar el classnotfoundexception.
Esta fue mi solución al problema. Por supuesto, muchas cosas pueden causar que ocurra. Para mí fue que Maven2 (no el complemento para Eclipse) estaba configurando el perfil de eclipse para utilizar un constructor diferente (aspectJ) pero no tenía el complemento en eclipse./
http://rbtech.blogspot.com/2009/09/eclipse-galileo-javalangclassnotfoundex.html
Saludos Ramon Buckland
Fui golpeado con este problema también y pude encontrar una solución suficiente para mi caso. Si su proyecto Eclipse tiene un archivo .classpath en la raíz del proyecto (véalo en la vista Navegador en lugar de la vista Explorador de paquetes), asegúrese de que su paleta de clase Maven aparezca antes de su paquete de clase JRE Container.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
</classpath>
Si su proyecto no tiene un archivo .classpath, puede editar la ruta de compilación Java de su proyecto para cambiar el orden y la exportación. Si su proyecto tiene el archivo .classpath y usted solo cambia su orden en la ruta de compilación de Java, verá que el orden no se ve afectado y el problema continuará ocurriendo.
Y un project-> clean nunca hace daño a las cosas después de hacer el cambio.
Había intentado todas las soluciones en esta página: actualizar proyecto, reconstruir, limpiar todos los proyectos, reiniciar Eclipse, volver a importar (incluso) los proyectos, reconstruir y actualizar. Nada funcionó. Lo que funcionó fue copiar la clase a un nuevo nombre que funciona bien, extraño pero cierto.
Después de aguantar esto por un tiempo, simplemente lo solucioné por:
- A través del menú
Run
- Seleccione
Run Configurations
- Elija la configuración de ejecución que está asociada a su prueba de unidad.
- Eliminar la entrada de la
Run Configuration
presionando eliminar o hacer clic en la X roja.
Algo debe haber sido arruinado con la configuración de ejecución en caché.
Hmm, parece un poco extraño, intenta ejecutarlo con la siguiente anotación en la parte superior de la clase:
@RunWith(SpringJUnit4ClassRunner.class)
public class UserDaoTest {
}
y dime cómo te va con eso.
Verifique que también tenga la compilación habilitada automáticamente. Si quiere asegurarse de que sus clases de prueba se compilan correctamente, borre la carpeta de destino de Maven (y cualquier carpeta bin que Eclipse pueda estar usando). ¿Estás utilizando m2eclipse también, ya que me parece un poco problemático?
Intenté todo lo que leí en esta larga publicación e, increíblemente, lo que funcionó para mí fue, en lugar de hacer clic en la clase de prueba y seleccionar Run as JUnit test
, hacer clic en el método de prueba y ejecutar como JUnit test
. ¿No tengo ni idea de porqué?
JUnit 4.4 no es compatible con la integración JMockit / JUnit. Solo se admiten las versiones 4.5 o posteriores.
La prueba JUnit desde dentro de eclipse también me dio NoClassDefFoundError. Ejecutar ''mvn clean test'' desde la línea de comandos me dio el siguiente error en varios archivos: encabezado LOC no válido (firma incorrecta) Eliminar estos archivos jar del repositorio local m2 y ejecutar ''mvn clean test'' de nuevo resolvió mi problema.
La solución a mi problema que era similar: las libs no eran válidas. Si busca en el archivo .classpath del proyecto, verá las etiquetas de clase de paquete de pruebas con la clave / valor kind = "lib". Algunos de los míos fueron incorrectos.
No descubrí esto hasta que desactivé la configuración de Validación. Es decir, había tantos errores en los archivos JSP, etc., que los errores de la ruta de clases no eran evidentes (o incluso aparecían). Como resultado, no se compilaba nada en las carpetas de salida de destino, pero no había errores útiles sobre por qué.
Me he encontrado con un mismo error en Eclipse recientemente, es decir, el Eclipse IDE no pudo encontrar la clase de prueba de la Unidad, sin importar cómo cambie las configuraciones. Aprendiendo de las publicaciones anteriores aquí y en otros sitios web, he comprobado y verificado tres veces la ruta de clase y la información de origen, y moví hacia arriba y hacia abajo la carpeta de origen y las bibliotecas, tanto en "Ejecutar configuración" como en "Java Build Path "config windows, y también limpié el proyecto y lo reconstruí, pero ninguno de los trucos funciona para mí. El proyecto específico de Java es un proyecto ANT compilado antiguo y tiene muchos archivos jar incluidos en la biblioteca de Eclipse.
Luego, cambié la clase de prueba unitaria para agregar un método main () y hago clic derecho en "Ejecutar como" una aplicación Java en lugar de una prueba JUnit, y de repente, Eclipse parece despertar e identificar la clase correctamente. Después, lo cambié a una aplicación de prueba de la Unidad, y todavía está funcionando.
Esto parece ser un error en Eclipse, supongo que la gran cantidad de bibliotecas (> 260) puede confundir la capacidad de la JVM para ubicar mi clase JUnit.
Me he topado con esa situación varias veces y, después de muchos intentos, encontré la solución.
Verifique la ruta de compilación de su proyecto y habilite las carpetas de salida específicas para cada carpeta. Vaya uno por uno a través de cada carpeta de origen de su proyecto y configure la carpeta de salida que maven usaría.
Por ejemplo, src/main/java
su proyecto web debe tener target/classes
en el proyecto web, las clases de prueba deben tener target/test-classes
también en el proyecto web, y así sucesivamente.
El uso de esta configuración le permitirá ejecutar pruebas unitarias en eclipse.
Solo un consejo más, si las pruebas de su proyecto web requieren algunos archivos de configuración que están debajo de los recursos, asegúrese de incluir esa carpeta como carpeta de origen y realizar la configuración de ruta de compilación adecuada.
Espero eso ayude.
Por lo general, este problema se produce al ejecutar la aplicación java
herramienta no puede encontrar el archivo de clase.
Sobre todo en el proyecto maven, vemos este problema porque Eclipse-Maven está sincronizado . Para resolver este problema: Maven-> Update Configuration
Resuelvo esa ruta de Bulit ---> libraries ---> add library ---> Junit check junit4
Sachin tiene razón: incluso con la ruta de clase correcta, la pestaña de problemas mostrará que alguna dependencia o el recurso / proyecto tiene un error que debe corregirse para que Maven cree y cree clases automáticamente al crear o hacer un cambio en su clase de prueba .
"Hola,
Es muy viejo julio (que año) pero tuve el mismo problema.
El problema real encontró que eclipse no pudo generar el archivo de clase para el archivo java, classpath era correcto.
Vea la pestaña de problema y verifique si su proyecto falta algo / archivo. puede crear un nuevo proyecto y agregar archivos uno por uno y compilarlos hasta que deje de compilar y crear clases (consulte las clases en el espacio de trabajo / proj / bin / paquete / carpeta)
es extraño pero cierto, ecplise estaba fallando en la compilación porque 4 de los 20 archivos Java estaban usando una sola imagen que faltaba. y como resultado, no se compiló ningún archivo java.
CLASSPATH no es un problema aquí ".
Señale corregir JDK desde Windows> Preferencias> Java> JRE instalado.
No apunte a jre, señale un JDK apropiado. Apunté a JDK 1.6U29 y actualicé el proyecto.
En lo sucesivo, el problema ya no existe y las Pruebas jUnit funcionan bien.
Gracias,
-Tapas
Todo lo que hice fue Propiedades -> Ruta de compilación de Java -> Ordenar y exportar -> Habilitar todas las casillas sin marcar -> Mover Junit hasta el final
Tuvimos la excepción exacta (usando SpringSource Tools, tomcat, en Win7) y la causa fue que habíamos refabricado un nombre de archivo (renombrado como un archivo) de SubDomain.java a Subdomain.java (D vs d) y de alguna manera colisionó aunque SpringSource fue mostrando el nuevo nombre Subdomain.java. La solución fue eliminar el archivo (a través de SpringSource) y crearlo nuevamente bajo el nombre Subdomain.java y copiar y pegar su contenido anterior. Simple como eso.
Yo tuve el mismo problema. Todo lo que hice fue,
yo). Artefactos de Eclipse generados
mvn clean eclipse:eclipse
ii). Actualice el proyecto y vuelva a ejecutar su prueba junit. Debería funcionar bien
haga clic en project->properties->Java build path->Source
y compruebe que cada carpeta src
sigue siendo válida existe o que se eliminó recientemente. Corrija cualquier ruta faltante o ruta incorrecta y reconstruya y ejecute la prueba. Arreglará el problema.
su classpath de compilación es correcto, por lo que puede compilar. el classpath para su JUnit necesita ser verificado. ve al menú Ejecutar y elige ''Abrir diálogo de ejecución''. allí deberías ver un árbol a la izquierda con JUnit como una opción. abra ese nodo y encuentre y seleccione su prueba. en el panel derecho verá una pestaña para classpath. Eche un vistazo para asegurarse de que se encuentre su clase que la prueba intenta crear una instancia.
editar:
esto parece ser un problema con maven y su comportamiento después de que un lanzamiento cambió las carpetas de salida de Eclipse predeterminadas. He visto soluciones descritas donde
- colocando maven en el bootclasspath ARRIBA de las jre works, o
- corriendo
mvn clean test
hace el truco o - actualizar todos sus proyectos de eclipse, lo que provoca una reconstrucción corrige el problema
- ir a su proyecto y seleccionar Maven-> Actualizar configuración resolver el problema
con los primeros tres, hubo informes de recurrencia del problema. el último me queda mejor, pero si no funciona, intente con los demás.
Intentó
Link : [here][1]
Open your run configurations
Click on the jUnit-Test you want to start
go to the classpath tab
Try to add a folder (click on user entries, click on advanced, click on add folders,click on ok and search the outputfolder for your test classes(those you find under projektproperties java build path, source))
trabajado después
Maven 2 LifeCycle >> prueba