Proyecto Java en Eclipse: el tipo java.lang.Object no se puede resolver. Se hace referencia indirecta desde los archivos .class requeridos

209

Recibo el siguiente error después de importar un proyecto en Eclipse:

El tipo java.lang.Object no se puede resolver. Se hace referencia indirecta desde los archivos .class requeridos

Sin embargo, he establecido la ruta como C: \ Archivos de programa \ Java \ jdk1.6.0_41 en Eclipse Kepler, a través de la ventana »Preferencias» Java »JRE instalados .

Diamante azul
fuente
hice "copiar proyecto" y el error desapareció
Srinath Ganesh
El comportamiento todavía ocurre en Luna Service Release 2 (4.4.2). La solución aquí todavía puede resolver el problema.
fóbico

Respuestas:

243

Este es un molesto error de Eclipse que parece morder de vez en cuando. Consulte http://dev-answers.blogspot.de/2009/06/eclipse-build-errors-javalangobject.html para ver una posible solución; de lo contrario, intente lo siguiente;

  • Cierre el proyecto y vuelva a abrirlo.

  • Limpie el proyecto (reconstruirá la ruta de compilación, por lo tanto, se reconfigurará con las bibliotecas JDK)

    O

  • Elimine y vuelva a importar el proyecto y, si es necesario, repita los pasos anteriores.

La mejor cura es probar NetBeans en lugar de Eclipse :-)

Gyro Gearless
fuente
44
Igual que aquí. Extraño error de Eclipse. Como dice el enlace, eliminar la biblioteca JRE del classpath del proyecto y volver a agregarlo soluciona el problema.
Felipe Leão
Oh, para un mundo que no tenía contratos con IBM.
Zibbobz
1
Tuve ese error en un proyecto de Android; para mí, hacer clic en Herramientas de Android -> Reparar propiedades del proyecto lo solucionó.
Lorenz
@Zibbobz, ¿por qué necesitamos un contrato con IBM? Todavía no puedo resolver esto con IBM Java.
Anand
Me pregunto si esto está relacionado con cuando cambias la variable de entorno JAVA_HOME. Había cambiado mi variable JAVA_HOME y apareció. Acabo de eliminar / leer la biblioteca JRE.
user2124871
222

Los siguientes pasos podrían ayudar:

  1. Haga clic derecho en el proyecto »Propiedades» Ruta de compilación de Java
  2. Seleccionar bibliotecas pestaña
  3. Encuentre la biblioteca del sistema JRE y elimínela
  4. Haga clic en el botón Agregar biblioteca ... en el lado derecho »Agregar la biblioteca del sistema JRE (JRE predeterminado del espacio de trabajo)
Ripon Al Wasim
fuente
44
En mi caso, ocurrió porque accidentalmente eliminé el JRE al importar el proyecto [mi culpa]. Esto me dio una pista para solucionar el problema.
GayashanNA
en mi caso no existía en absoluto, así que lo agregué.
Muhammed Refaat
1
Aunque esto funcionó en mi caso, resolvió 8 errores, ¡pero me dio otros 33!
Harsh Phoujdar
10

Así es como lo resolví: En Java-ADT: Windows - Preferencia - Java - JRE instalados Simplemente agregue otro JRE, apuntando a la carpeta 'jre' debajo de su carpeta JDK. (jre está incluido en el jdk). Asegúrate de elegir el nuevo jre.

Andy Zhang
fuente
10

Esto me sucedió cuando importé un proyecto Java 1.8 de Eclipse Luna a Eclipse Kepler.

  1. Haga clic derecho en proyecto> Ruta de compilación> configurar ruta de compilación ...
  2. Seleccione la pestaña Bibliotecas, debería ver Java 1.8 jre con un error
  3. Seleccione el java 1.8 jre y haga clic en el botón Eliminar
  4. Agregar biblioteca ...> Biblioteca del sistema JRE> Siguiente> espacio de trabajo predeterminado> Finalizar
  5. Haga clic en Aceptar para cerrar la ventana de propiedades.
  6. Vaya al menú del proyecto> Limpiar ...> Aceptar

Et voilà, eso funcionó para mí.

e18r
fuente
7

La clase de objeto es la clase base para todas las clases en java, si te falta esto significa que no tienes las bibliotecas jdk en tu buildpath. No sé mucho sobre Kepler, pero debe asegurarse de que apunte a un jdk correcto para la compilación y un jre correcto para ejecutar sus aplicaciones java.

Sin embargo, he configurado la ruta como C: \ Archivos de programa \ Java \ jdk1.6.0_41 desde la barra de herramientas de eclipse Kepler-> windows-> preferencias-> java-> jre instalado

Está intentando señalar jdk en lugar de jre en sus preferencias. barra de herramientas-> windows-> preferencias-> java-> jre instalado debe apuntar a un jre y no jdk.

Juned Ahsan
fuente
He intentado con eso también. Pero aún en el mismo estado de error.
Blue Diamond
4

Ninguna de las otras respuestas funcionó para mí. Pero hacer esto hizo:

  1. Haga clic derecho en el proyecto en el explorador de paquetes.
  2. Fuente> Limpiar ...
  3. Siguiente> Finalizar

Cuando hice esto, Eclipse agregó una importación a una de mis clases. Creo que esto ocurrió porque guardé mi proyecto con una importación faltante, probablemente apresurándome a llegar a casa después del trabajo.

Jack Pettinger
fuente
gracias ... funciona ... por favor explícame cómo funciona?
Singh Arjun
@SinghArjun No estoy seguro, pero creo que esto sucede cuando el proyecto se guarda con una importación faltante.
Jack Pettinger
4

¿Ha instalado una versión diferente de JRE después, mientras usaba la versión anterior de JRE en Eclipse?

si no es que:

  1. Haga clic derecho en su proyecto -> Build Path -> Configure Build Path
  2. Vaya a la pestaña 'Bibliotecas'
  3. Agregar biblioteca -> Biblioteca del sistema JRE -> Siguiente -> Espacio de trabajo JRE predeterminado (o puede elegir JRE alternativo de su sistema) -> Finalizar

en caso afirmativo que.

  1. Haga clic derecho en su proyecto -> Build Path -> Configure Build Path
  2. Vaya a la pestaña 'Bibliotecas'
  3. Remueve la versión anterior
  4. Agregar biblioteca -> Biblioteca del sistema JRE -> Siguiente -> JRE predeterminado del espacio de trabajo (o puede elegir JRE alternativo de su sistema) -> Finalizar
Gaurav Varshney
fuente
4

Ninguna cantidad de limpieza, cierre / reapertura del proyecto e IDE, eliminación / adición del JRE en la ruta de compilación funcionó para mí.

La solución que encontré fue eliminar el proyecto de Eclipse (no del disco), eliminar los archivos Eclipse del proyecto del disco e importarlos nuevamente a Eclipse. Eso funciono.

Es aún más rápido si está utilizando Maven:

  1. Cerrar Eclipse (no es necesario eliminar el proyecto)
  2. correr mvn clean eclipse:clean eclipse:eclipse
  3. Abra Eclipse. Su proyecto todavía está presente y el problema debería desaparecer.
Nicolas Raoul
fuente
3

Otro problema podría ser que el objetivo de compilación del proyecto Android no está configurado.

  1. Haga clic derecho en el proyecto
  2. Elige propiedades
  3. Haga clic en Android
  4. Marque el objetivo de construcción del proyecto apropiado
  5. Aplicar | Okay
sátiro
fuente
3

Haga clic derecho en el proyecto -> Mostrar en el navegador En la vista del navegador puede ver el archivo .classpath, elimine este archivo y cree el proyecto. Esto funcionó para mí. PD. Si ha integrado su proyecto eclipse con algún control de versión como perfoce / svn, entonces desvincular el proyecto antes de eliminar el .classpath será útil.

Sankalp
fuente
2

Estaba enfrentando este problema con la aplicación play-java en eclipse después de agregar un controlador, eliminé y reinstalé JRE a través de la ruta de compilación y luego eliminé e importé mi proyecto que resolvió este problema automáticamente. Gracias giroscopio.

usuario989383
fuente
Esto es lo mismo que la respuesta de Ripon Al Wasim, ¿verdad?
Nicolas Raoul
2

Esto parece ser un error de Eclipse, aunque reiniciar Eclipse funcionó muy bien para mí, espero que esto también ayude a alguien más.

Arturas M
fuente
2

Lo que resolvió mi problema fue

1) Instale el jdk en el directorio sin espacios:

C:/Java

En vez de

C:/Program Files/Java

Este es un problema conocido en Windows. Me fijo JAVA_HOME, así

2) I Java 7 y Java 8 en mi computadora portátil. Entonces definí el jvm usando eclipse.ini. Este no es un paso obligatorio si no tiene -vmentrada en su eclipse.ini. Yo actualice:

C:/Java/jdk1.7.0_79/jre/bin/javaw.exe

En vez de:

C:/Java/jdk1.7.0_79/bin/javaw.exe

Buena suerte

KerenSi
fuente
1

Tuve el mismo problema en las ventanas de eclipse que no pude agregar archivos .class dependientes del JNI. Para resolver lo mismo, porté todo el código al IDE de NetBeans.

No se pueden agregar todos los archivos de clases de la carpeta JNI / JNA en Eclipse (JAVA, Windows 7)

Jyo the Whiff
fuente
¿Por qué se rechaza? Mira, probé todas las soluciones posibles, aún no pude resolver el problema y luego porté el código a NetBeans. Respondí esto porque si alguien se atascaba, en el peor de los casos, podría obtener ayuda.
Jyo the Whiff
Puede que tenga razón, pero para mí JNI / JNA funcionó bien (para eclipse - 4.9.0) después de eliminar la biblioteca existente y configurar la biblioteca jre predeterminada, cerrar el proyecto, abrir el proyecto.
Ajay Kumar
1

Mientras trabajamos con las versiones tomcat 6 y jdk 1.8, algunas de las características no funcionarán y este error que está recibiendo es uno. necesita cambiar la versión jdk a una versión estable (preferiblemente jdk 1.6 o jdk 1.8_65) en eclipse para resolver este error.

en eclipse paso 1: propiedades -> ruta de compilación java -> biblioteca del sistema jre (eliminar) paso 2: agregar -> biblioteca del sistema jre -> jre alternativo -> jre instalado -> agregar -> VM estándar -> (en jre home, colocar ruta jdk) -> terminar

ahora limpia y revisa el proyecto

NSetty
fuente
1

Recibí este error porque instalé "Eclipse IDE para desarrolladores Java empresariales", lo desinstalé e instalé "Eclipse IDE para desarrolladores Java". Problema resuelto para mi.

RVR
fuente
0

Pasé a mí después de haber instalado algunas actualizaciones en eclipse, pero olvidé reiniciar después. Entonces, quizás reiniciar eclipse podría ayudar.

NotX
fuente
Traté de hacer eso, pero todavía no tengo permitido escribir comentarios.
NotX
0

Por trivial que sea, verifique su instalación de Java. Para mí, faltaba rt.jar .

Encontré esto después de jugar durante medio día con la configuración de Eclipse y no llegar a ninguna parte. Desesperado, finalmente decidí intentar compilar el proyecto desde la línea de comandos. No esperaba ver nada malo ya que pensé que era un problema de Eclipse, pero para mi sorpresa, vi esto:

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

No sé qué pasó con mi instalación de Java y adónde fue rt.jar. De todos modos, esto es un recordatorio para revisar la lista de verificación de fallas y marcar todas las casillas sin importar cuán increíbles sean. Me hubiera ahorrado mucho tiempo.

Nikola Kolev
fuente
0

Me está funcionando después de desmarcar 'Usuario' - opción releae 'en el compilador eclipse de Java

En eclipse, paso 1: propiedades -> Java Complier -> uchecking 'Usuario' - opción de opción releae '-> terminar

Versión de Java 13.0.1 Versión de Eclipse: Eclipse IDE para Enterprise Java Developers.

poovaraj
fuente
0

Haga clic derecho en el proyecto, seleccione Maven -> Actualizar proyecto. Eso debería resolver el problema.

Morfeo
fuente
hacer eclipse -> maven -> actualizar debería ser uno de los pasos al solucionar problemas.
Vaibs
0

En mi caso, era un gran proyecto modular y la ' X roja ' solo se mostraba en el proyecto principal. Fui al proyecto principal

Propiedades -> Ruta Construida

Se eliminó la Biblioteca JRE allí, solo eso, ya no hay Biblioteca JRE en el proyecto principal.

Francisco Souza
fuente
0

Ninguna de estas soluciones funcionó para mí. En mi caso, el problema era que tenía algunos .javaarchivos productores de código Java y accidentalmente había creado un archivo llamado Class.java(el contenido no parece importar). Eliminar el archivo solucionó el problema.

HappyEvilSlosh
fuente