Error de eclipse: "La importación XXX no se puede resolver"

135

Estoy tratando de trabajar con Hibernate en Eclipse. Estoy creando un nuevo proyecto simple y también he descargado un proyecto colega, a través de CVS. Ambos no funcionan, mientras que en Eclipse de mi colega sí. El problema es que, por cada importación de una clase Hibernate, Eclipse dice:

The import org.hibernate cannot be resolved

Pero todos los frascos de Hibernate están en la ruta de compilación, es decir:

antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
azulado
fuente
1
¿Cómo agregaste estos jar en tu ruta de compilación?
Jigar Joshi
3
por Propiedades> Ruta de compilación Java> Bibliotecas> Agregar archivos JAR externos
azulado
1
Si funcionó y ahora no, vea la respuesta de
@dogbane a
compruebe si hay espacio en su carpeta de importación. si hay un espacio, elimine el espacio e importe proyectos en eclipse.
schin chan

Respuestas:

283

Intente limpiar su proyecto yendo al siguiente elemento del menú:

Project > Clean...

Si eso no funciona, intente eliminar los frascos de la ruta de compilación y agregarlos nuevamente.

dogbane
fuente
55
podría ser un problema de JRE. Intente seleccionar un "JRE alternativo" en las propiedades del proyecto.
dogbane
10
Clean también funcionó para mí. ¿Qué sucede exactamente (todo se volvió loco de repente) y cómo ayuda Clean?
Sabre Runner el
1
Esto resolvió el problema también para mí; no es un proyecto de hibernación, sino uno de libGdx , que llama a mis importaciones de Java y no a frascos. El mismo asombro de @SabreRunner, y también: ¿hay algún error en alguna parte de las herramientas del entorno?
Zac
3
A mí también me funcionó. Es muy frustrante cuando el menú de ayuda contextual encuentra su clase y la mano escribiendo la misma importación sobre las marcadas como "no se puede resolver" y sin errores ...
Shanimal
1
De esta manera NO ayuda en mi caso. Mi versión de Eclipse es: Neon.3 Release (4.6.3)
Timothy.Li
27

Obviamente, hay casos en los que hay un problema válido, sin embargo, Eclipse arroja este error sin razón alguna a veces.

Esto todavía (2019-03) es un error Eclipse antiguo (2010) que se puede resolver haciendo un cambio insignificante en la configuración del proyecto.

La configuración que elegí cambiar fue: Proyecto> Propiedades> Ruta de compilación de Java> Ordenar y exportar> realizar un cambio de orden sin sentido> Aplicar.

Cambiar el orden de regreso no regresa al problema. Simplemente tocar el archivo también podría resolver el problema (probaré el toque la próxima vez).

usuario1133275
fuente
1
Archivo> Propiedades debe cambiarse a Proyecto> Propiedades.
Timothy.Li
De esta manera NO ayuda en mi caso. Mi versión de Eclipse es: Neon.3 Release (4.6.3)
Timothy.Li
Para mí, la biblioteca del sistema JRE tenía que estar por encima de las dependencias de Maven en la pestaña Orden y exportación de Build Path.
Anthony Hayward el
2
Este error tiene ahora al menos 9 años.
user1133275
Todavía está allí, noviembre de 2019. Sheesh.
Tullochgorum
22

Limpia el proyecto. Y vuelva a verificar que los frascos estén realmente en la ruta de compilación (sin errores). También asegúrese de que no haya nada en la vista "Problemas".

Bozho
fuente
Ya lo he intentado más de una vez: con jarras individuales, dentro de una biblioteca, ... ¡Parece un error extraño!
azulado
1
¿tiene algo en la vista de problemas?
Bozho
Solo los problemas que dije y las advertencias del tipo "La clase serializable Azienda no declara un campo estático final serialVersionUID de tipo largo".
azulado
18

Encontré el problema. Fue el hibernate3.jar. No sé por qué no fue bien extraído del .zip, tal vez corrupto . Una buena manera de verificar si los archivos jar están dañados o no es navegando a través de su estructura de árbol en "Project Explorer" en Eclipse: si no puede expandir un nodo jar, probablemente esté dañado. He visto que tener paquetes corruptos es frecuente cuando los arrastras y los sueltas al "Explorador de proyectos". ¡Quizás sea mejor moverlos y copiarlos en el entorno del sistema operativo! Gracias a todos.

azulado
fuente
17

Si es un proyecto Maven, también haga clic en Maven >> Actualizar proyecto ... (F5)

Actualizar proyecto Maven

albertoiNET
fuente
Si importa un proyecto maven como "proyecto Java", se produce este problema. Convierta el proyecto en proyecto maven y actualícelo como dijo, entonces el problema se ha ido
kodmanyagha
8

Lo resolví eliminando el proyecto (no lo elimine en el disco) e importándolo nuevamente.

SoldadoChen
fuente
8
  1. proyecto limpio proyecto -> limpiar ...
  2. Haga clic derecho en proyecto -> BuildPath -> Configurar BuildPath -> pestaña Bibliotecas ->

Haga doble clic en JRE SYSTEM LIBRARY -> Luego seleccione JRE alternativo

Balkrushna Patil
fuente
6

Tuve el problema, que el classpath estaba roto de alguna manera.

Así que haga clic derecho en el proyecto en Explorador de paquetes> Herramientas de complementos> Actualizar classpath ... lo hice por mí

wuppi
fuente
En la versión Neon.3 (4.6.3), NO hay herramientas de complemento en el menú contextual haciendo clic derecho en el proyecto en Package explorer
Timothy.Li
6

Resolví este problema actualizando el proyecto: haga clic derecho en el proyecto Maven, seleccione Maven -> Actualizar proyecto -> seleccione la casilla de verificación Forzar actualizaciones de instantáneas / lanzamientos.

Kalahasthi Satyanarayana
fuente
5

Intente agregar JRE System Library en la ruta de compilación de su proyecto.

Gaurav Pant
fuente
3

Conmigo ayudó a cambiar el nivel de cumplimiento del compilador . Por razones desconocidas, se configuró en 1.6 y lo cambié a 1.8.

Una vez en el nivel del proyecto, haga clic con el botón derecho en proyecto> Propiedades> Compilador Java, mientras que en Eclipse, haga clic en el menú Ventana> Preferencias> Java> Compilador.

Alex P.
fuente
3

Intenté todas las respuestas anteriores pero no tuve suerte. En mi caso, hay una carpeta de compilación / clases generadas con algunos archivos adicionales ".class". Terminé yendo al explorador de paquetes, haciendo clic derecho en el proyecto y seleccionando la opción "Actualizar" y eso hizo que la carpeta de compilación / clases estuviera disponible nuevamente para resolver el problema.

egallardo
fuente
3

Esto ha resuelto mi problema.

1) proyecto limpio Proyecto -> limpio ...

2) Haga clic derecho en proyecto -> BuildPath -> Configurar BuildPath -> pestaña Bibliotecas -> Haga doble clic en JRE SYSTEM LIBRARY -> Luego seleccione JRE alternativo

3) Haga clic en Guardar

4) Vuelva a ir a su proyecto en el explorador de proyectos y haga clic derecho para proyectar -> BuildPath -> Configurar BuildPath -> pestaña Bibliotecas -> Haga doble clic en JRE SYSTEM LIBRARY -> Esta vez seleccione "Entorno de ejecución"

5) Aplicar

Atul Waghmare
fuente
2

En mi caso, era un frasco roto en el repositorio de Maven. Elimine los archivos jar en el repositorio y deje que Maven los descargue nuevamente.

Cuando corrí mvn clean installdesde la línea de comando, funcionó bien, pero Eclipse aún no pudo compilar el código. Cuando corrí maven installen Eclipse, vi que Maven se quejaba de un archivo jar incorrecto. Así que lo borré y corrí maven installnuevamente. El problema se fue.

Evgeny Shmulev
fuente
2

Para descargar un archivo jar no existente en su directorio .m2, debe ejecutar el mvn clean installcomando para su proyecto pom.xml. Luego, debe actualizar las dependencias del proyecto haciendo clic en Alt+F5. Esto funciona para mi!

ÖMER TAŞCI
fuente
2

¡Eliminar el "module-info.java" resolvió el problema por mí!

Este archivo se generó automáticamente y apareció en mi jerarquía ...

val_t
fuente
1

Tuve el mismo problema porque agregué un jar que creé, donde había configurado el directorio base de empaquetado que no sea el directorio base de las clases. Como resultado, la clase, por ejemplo, java.util.Listtuvo que importarse como util.Listsi la importación sugerida fuera la primera.

Compruebe los frascos importados en las bibliotecas a las que se hace referencia para ver si se importaron correctamente.

kon psych
fuente
1

No entendía el razonamiento detrás de esto, pero resolvió el mismo problema que estaba enfrentando. Es posible que necesite estos pasos antes de ejecutar los pasos mencionados en las soluciones anteriores (Limpie todos los proyectos y Construya automáticamente).

haga clic con el botón derecho en el proyecto -> Propiedades -> Facetas del proyecto -> seleccione Java -> Aplicar

avp
fuente
1

Cuando encuentre este problema, vaya a Proyecto> Limpiar, luego seleccione Limpiar todos los proyectos. Debería resolverse; de ​​lo contrario, intente eliminar esos frascos y agregarlos nuevamente. Lo último sería intentar reiniciar Eclipse.

Srinivas Thammanaboina
fuente
1

pom.xml

Si es un proyecto de Maven, vaya a pom.xml y elimine todos los frascos de dependencia. Guárdalo El proyecto se construirá automáticamente.

Luego agregue los frascos de dependencia nuevamente (puede hacer Ctrl+ Z). Guárdalo El proyecto se construirá automáticamente y no verá ese error.

sravan
fuente
1

Elimine la dependencia en su POM.XML y descargue el jar y agréguelo en buildpath.

en algún momento -> maven no reflejará nuevos cambios y esto podría causar este tipo de problema

Rajagopal K
fuente
0

Intenta comprobar si todas las bibliotecas están en su lugar. Tuve el mismo problema. Pero lo resolví moviendo la carpeta lib y agregando todos los frascos nuevamente en la ruta de compilación.

Ravi Kumar
fuente
0

Tengo el mismo problema. Descargué el jar y lo agregué a la ruta de compilación, pero no noté que la extensión era .jar.zip. Lo convertí nuevamente a .jar y lo agregué a la ruta de compilación.

Solucionó mi problema. Es un error muy tonto, pero lo escribí aquí en caso de que pueda ayudar a alguien.

Ali786
fuente
0

Si está trabajando con Maven y tiene este problema, verifique el servidor del repositorio (por ejemplo, el servidor nexus), si el artefacto está allí. A veces, pueden cambiar el nombre del artefacto e intenta obtener el artefacto con su antiguo nombre.

drJava
fuente
0

Se resuelve vinculando la fuente. Desde el explorador, haga clic derecho en el proyecto, seleccione propiedades, seleccione Java Build Path, seleccione Fuente de las pestañas, presione el botón "LinkSource". Y especificando la carpeta para agregar al proyecto.

vive ama rie
fuente
0

No pude importar también. Me tomó algunas horas descubrir que intenté usar una biblioteca / jarra enlazada 1.6 mientras intentaba compilar para 1.8. Cuando cambié mi proyecto también para usar 1.6, el problema de importación desapareció. Todos los mensajes de error conducían a direcciones incorrectas. Solo en la fuente encontré algunas limitaciones dirigidas a la versión 1.6. Y: Por ejemplo, .settings y .classpath (File-Search) -> org.eclipse.jdt.core.compiler.codegen.targetPlatform = 1.6 pueden dar una pista sobre estos temas.

sqller
fuente
0

Me enfrenté al mismo problema y lo resolví eliminando un jar que se agregó dos veces en dos dependencias diferentes en mi pom.xml. Eliminar una de las dependencias resolvió el problema.

Reema
fuente
0

Para mí, parecía que estaba agregando el nivel incorrecto de la carpeta de la biblioteca. Descargué el Jericho HTML Parser , lo descomprimí en eclipse-workspace/libraries/jericho-html-3.4/

Luego, al agregar esto como una carpeta de biblioteca externa, el truco consistía en navegar a esa carpeta, resaltar la carpeta "clases" y presionar Abrir. Anteriormente intenté agregar tanto el padre como varios niveles de subcarpetas y no funcionó.

Esto se explica más o menos aquí , dice

También puede agregar una carpeta de clase , un directorio que contiene archivos de clase Java que no están en un JAR.

Aquí hay dos lecciones aprendidas para mí, disculpas si están fuera de tema:

  1. ¡Lea las instrucciones cuidadosamente, como en palabras por palabra!

  2. No te rindas: esta es la primera vez que agrego una biblioteca, me llevó alrededor de dos horas obtenerla.

pateksan
fuente
0

Solución para Eclipse IDE

En mi caso, lo arreglé corrigiendo uno de estos dos archivos que pueden estar dañados: .classpath o .project .

Para reparar cualquiera de los archivos dañados, puede copiar de otro proyecto que tiene tanto la .project archivo o .classpath archivo en cuestión y está libre de errores. Pero asegúrese de no agregar configuraciones adicionales que no se utilizarán.

Tavo
fuente
0

[ Trabajo de marco de Code Igniter ] [ Importar biblioteca ]

Intente hacer clic con el botón derecho en el proyecto en una vista del Explorador de proyectos, elija actualizar . Todos los marcadores de error se han ido sorprendentemente a mi caso.


No soy bueno en Eclipse. Empecé a usar Android Studio para desarrollar Android. Pero, es molesto ver marcadores de error rojos flotando todo el tiempo mientras todo el proyecto todavía funciona bien. Me sucedió cuando uso el compositor para importar una biblioteca como esta:

require __DIR__ . '/../../vendor/autoload.php';

use \Firebase\JWT\JWT;
Nguyen Tan Dat
fuente