2010-02-04 17 views
16

En IntelliJ obtengo este extraño error cuando intento compilar.Archivo de clase no encontrado en IntelliJ

Cannot find annotation method 'cascade()' in type 'javax.persistence.ManyToOne': class file for javax.persistence.ManyToOne not found 

que sé, parece bastante obvio cuál es el problema, pero después de haber pasado demasiado tiempo en este problema Paso ahora mi confianza a usted!

Uso ideaCommunity-9, donde he creado una biblioteca global para JBoss, que contiene todos los archivos JBoss incluyendo ejb3-persistence.jar. Mi módulo incluye esta biblioteca, y la he movido a la parte superior de las dependencias. No otherwhere en classpath Tengo una clase javax.persistence.ManyToOne, y también se abre en IntelliJ sin problemas.
Si abro el archivo en el que aparece el error de compilación, IntelliJ no muestra ningún problema y también navega hacia el archivo de clase al presionar Ctrl + B.
El código también se compila con hormiga y aquí funciona bien.

Además del error anterior, obtengo otros seis en la misma ruta (nombre en la tabla, etc.), todos relacionados con JPA. También recibo un mensaje que dice "Por favor, presente un error al JDC yada yada yada".

+0

¿Puedes abrir la clase 'ManyToOne' usando el atajo de teclado + N? –

+0

Sí, no tengo problemas para ver el archivo de clase de ManyToOne. Me da una ubicación en ejb3-persistence.jar que nuevamente se encuentra dentro de JBoss. También tiene el método de cascada(). – homaxto

Respuesta

29

Intente marcar una casilla de verificación "exportar" en sus dependencias.

Es decir: Estructura del proyecto -> Módulos -> Dependencias, y allí se pueden ver las librerías incluidas en el módulo. También debería ver una casilla de verificación cerca de cada lib en la columna 'Exportar'.

+0

Tuve un problema similar (anotación diferente del mismo error). Esto funcionó para mí. ¡Gracias! – user127386

1

¿No es similar a este SO question?

La solución que había que añadir todo el tarro de JBoss (que lo hizo), sino también todas las bibliotecas relacionados con persistentes (como Hibernate)

ver este JBoss project configuration por ejemplo:

alt text http://jdick.co.uk/blog/wp-content/uploads/2008/12/projectstructure1.jpg

En corto, ejb3-persistence.jar podría no ser el problema aquí, solo un síntoma de otros elementos faltantes.
O, si es el problema, puede estar relacionado con el hecho de que no se despliega correctamente (para el WebApp configuration).

0

He aquí una idea: Quizás tenga varias versiones de su archivo jar. Busque en la jerarquía de su carpeta el archivo ejb3-persistence.jar, usando una herramienta de administración de archivos como Total Commander. Las apariciones múltiples del archivo en su classpath pueden confundir a IntelliJ Idea y no reconocer la clase adecuada en el jar apropiado.

0

tenían un problema similar ("no puede encontrar la primavera de clase ... DefaultResourceLoader a pesar de que era en mis dependencias de Maven) y ninguna cantidad de ajustes de cachés revalidar parecía ayudar. Arrancar mi $ HOME/.Idea * caminos y (básicamente) a partir de cero se lo arregló para mí. Al menos por ahora ...

2

Estoy seguro, es demasiado tarde para responder, pero tuve que seguir un enfoque diferente para este error para resolver este problema problema

Tuve que crear esto como biblioteca global y agregar esa biblioteca al módulo, entonces solo se resuelve el error.

Add this as a global library

Then add that library as dependency to the project

0

que estaba recibiendo el mensaje class not found de error al intentar ejecutar una clase .groovy prueba, que hace referencia a un archivo .groovy (que se encuentra en la raíz del directorio de origen de un submódulo - es decir, sin paquetes).

Al mover el archivo de origen .groovy a un paquete, solucionó el problema.

Mover:

src/main/groovy/RunMe.groovy 

a

src/main/groovy/somePackage/RunMe.groovy 
0

En IntelliJ Tengo este problema cuando construí (Ctrl + Shift + F9) a nivel de archivo.

La razón es que tuve cambios en otros archivos en el mismo proyecto de maven, que no fueron recogidos.

Lo resuelto mediante la construcción a nivel de proyecto (Seleccione el proyecto Maven en intellij y pulse Ctrl + Shift + F9)

4

Acabo de esto mismo, pero no de esas cosas eran mi problema. Descargué un proyecto de github, luego abrí en intelli J con el problema después de intentar ejecutar una prueba junit.

Solución: Estructura del proyecto -> Módulos -> 'Project_Name' -> Fuentes (pestaña) -> Haga clic en la carpeta src -> marca como: Fuentes

Esto debe resaltar src a ser azul y todos los archivos de clase debe sean los círculos con C en lugar de verse como archivos normales. Intente ejecutar una prueba nuevamente y vea si eso lo hace.

Cuestiones relacionadas