Projet Java dans Eclipse: le type java.lang.Object ne peut pas être résolu. Il est indirectement référencé à partir des fichiers .class requis

209

J'obtiens l'erreur suivante après l'importation d'un projet dans Eclipse:

Le type java.lang.Object ne peut pas être résolu. Il est indirectement référencé à partir des fichiers .class requis

Cependant, j'ai défini le chemin d'accès comme C: \ Program Files \ Java \ jdk1.6.0_41 dans Eclipse Kepler, via Fenêtre »Préférences» Java »JRE installés .

Diamant bleu
la source
j'ai fait "copier le projet" et l'erreur a disparu
Srinath Ganesh
Le problème se produit toujours dans Luna Service Release 2 (4.4.2). La solution ici peut toujours résoudre le problème.
phobique

Réponses:

243

Il s'agit d'un bug Eclipse ennuyeux qui semble mordre de temps en temps. Voir http://dev-answers.blogspot.de/2009/06/eclipse-build-errors-javalangobject.html pour une solution possible, sinon essayez ce qui suit;

  • Fermez le projet et rouvrez-le.

  • Nettoyer le projet (il reconstruira le chemin de build et donc se reconfigurera avec les bibliothèques JDK)

    OU

  • Supprimez et réimportez le projet et, si nécessaire, recommencez les étapes ci-dessus.

Le meilleur remède est d'essayer NetBeans au lieu d'Eclipse :-)

Gyro Gearless
la source
4
Pareil ici. Bug Eclipse bizarre. Comme le dit le lien, supprimer la bibliothèque JRE du chemin de classe du projet et l'ajouter à nouveau résout le problème.
Felipe Leão
Oh pour un monde qui n'avait pas de contrat avec IBM.
Zibbobz
1
J'ai eu cette erreur sur un projet Android, pour moi, cliquer sur Outils Android -> Corriger les propriétés du projet l'a corrigé.
Lorenz
@Zibbobz pourquoi avons-nous besoin d'un contrat avec IBM. Je ne parviens toujours pas à résoudre ce problème avec IBM Java.
Anand
Je me demande si cela est lié au moment où vous modifiez la variable d'environnement JAVA_HOME? J'avais changé ma variable JAVA_HOME et cela est apparu. Je viens de supprimer / réajouter la bibliothèque JRE.
user2124871
222

Les étapes suivantes pourraient vous aider:

  1. Faites un clic droit sur le projet »Propriétés» Chemin de génération Java
  2. Sélectionner onglet Bibliothèques
  3. Recherchez la bibliothèque système JRE et supprimez-la
  4. Cliquez sur le bouton Ajouter une bibliothèque ... à droite »Ajouter la bibliothèque système JRE (JRE par défaut de Workspace)
Ripon Al Wasim
la source
4
Dans mon cas, cela s'est produit parce que j'ai accidentellement supprimé le JRE lors de l'importation du projet [ma faute]. Cela m'a donné un indice pour résoudre le problème.
GayashanNA
dans mon cas, il n'existait pas du tout, alors je l'ai ajouté.
Muhammed Refaat
1
Bien que cela ait fonctionné dans mon cas, j'ai résolu 8 erreurs mais m'en ai donné 33 autres!
Harsh Phoujdar
10

Voici comment je l'ai résolu: Dans Java-ADT: Windows - Préférence - Java - JRE installés Ajoutez simplement un autre JRE, en pointant vers le dossier 'jre' sous votre dossier JDK. (jre est inclus dans le jdk). Assurez-vous d'avoir choisi le nouveau jre.

Andy Zhang
la source
10

Cela m'est arrivé lorsque j'ai importé un projet Java 1.8 d'Eclipse Luna dans Eclipse Kepler.

  1. Faites un clic droit sur le projet> Chemin de génération> configurer le chemin de génération ...
  2. Sélectionnez l'onglet Bibliothèques, vous devriez voir le Java 1.8 jre avec une erreur
  3. Sélectionnez le java 1.8 jre et cliquez sur le bouton Supprimer
  4. Ajouter une bibliothèque ...> Bibliothèque système JRE> Suivant> espace de travail par défaut> Terminer
  5. Cliquez sur OK pour fermer la fenêtre des propriétés
  6. Allez dans le menu projet> Nettoyer ...> OK

Et voilà, cela a fonctionné pour moi.

e18r
la source
7

La classe d'objets est la classe de base pour toutes les classes en java, si vous manquez cela, cela signifie que vous n'avez pas les bibliothèques jdk dans votre chemin de construction. Je ne connais pas grand-chose à Kepler mais vous devez vous assurer qu'il pointe vers un jdk correct pour la compilation et un jre correct pour exécuter vos applications java.

Cependant, j'ai défini le chemin d'accès comme C: \ Program Files \ Java \ jdk1.6.0_41 à partir de la barre d'outils eclipse Kepler-> windows-> preferences-> java-> jre installé

Vous essayez de pointer jdk au lieu de jre dans vos préférences. barre d'outils-> fenêtres-> préférences-> java-> jre installé doit pointer vers un jre et non pas jdk.

Juned Ahsan
la source
J'ai essayé avec ça aussi. Mais toujours dans le même état d'erreur.
Blue Diamond
4

Aucune des autres réponses n'a fonctionné pour moi. Mais cela a fait:

  1. Cliquez avec le bouton droit sur le projet dans l'explorateur de packages.
  2. Source> Nettoyer ...
  3. Suivant> Terminer

Quand j'ai fait cela, Eclipse a ajouté une importation dans l'une de mes classes. Je pense que cela s'est produit parce que j'ai enregistré mon projet avec une importation manquante, se précipitant probablement pour rentrer à la maison après le travail.

Jack Pettinger
la source
merci ..il fonctionne .. veuillez m'expliquer comment cela fonctionne?
Singh Arjun
@SinghArjun Je ne suis pas sûr mais je pense que cela se produit lorsque le projet est enregistré avec une importation manquante.
Jack Pettinger
4

Avez-vous installé une version JRE différente après, tout en utilisant la version précédente de JRE dans Eclipse.

si pas que:

  1. Faites un clic droit sur votre projet -> Chemin de construction -> Configurer le chemin de construction
  2. Allez dans l'onglet 'Bibliothèques'
  3. Ajouter une bibliothèque -> Bibliothèque système JRE -> Suivant -> JRE par défaut de l'espace de travail (ou vous pouvez choisir un autre JRE pour votre système) -> Terminer

si oui que.

  1. Faites un clic droit sur votre projet -> Chemin de construction -> Configurer le chemin de construction
  2. Allez dans l'onglet 'Bibliothèques'
  3. Supprimer l'ancienne version
  4. Ajouter une bibliothèque -> Bibliothèque système JRE -> Suivant -> JRE par défaut de l'espace de travail (ou vous pouvez choisir un autre JRE à partir de votre système) -> Terminer
Gaurav Varshney
la source
4

Aucune quantité de nettoyage, fermeture / réouverture du projet et IDE, suppression / ajout du JRE dans le chemin de construction n'a fonctionné pour moi.

La solution que j'ai trouvée était de supprimer le projet d'Eclipse (pas du disque), de supprimer les fichiers Eclipse du projet du disque et de réimporter dans Eclipse. Ça a marché.

C'est encore plus rapide si vous utilisez Maven:

  1. Fermer Eclipse (pas besoin de supprimer le projet)
  2. Courir mvn clean eclipse:clean eclipse:eclipse
  3. Ouvrez Eclipse. Votre projet est toujours présent et le problème devrait avoir disparu.
Nicolas Raoul
la source
3

Un autre problème pourrait être que la cible de construction du projet Android n'est pas définie.

  1. Cliquez avec le bouton droit sur le projet
  2. Choisissez les propriétés
  3. Cliquez sur Android
  4. Cochez la cible de construction de projet appropriée
  5. Postuler | D'accord
satyrFrost
la source
3

Cliquez avec le bouton droit sur le projet -> Afficher dans le navigateur Dans la vue du navigateur, vous pouvez voir le fichier .classpath, supprimez ce fichier et générez le projet. Cela a fonctionné pour moi. PS. Si vous avez intégré votre projet d'éclipse avec un certain contrôle de version comme perfoce / svn, alors dissocier le projet avant de supprimer le .classpath sera utile.

Sankalp
la source
2

J'étais confronté à ce problème avec l'application play-java sur eclipse après avoir ajouté un contrôleur, j'ai supprimé et réinstallé JRE via le chemin de génération, puis supprimé et importé mon projet qui a résolu ce problème automatiquement. Merci gyroscope.

user989383
la source
C'est la même chose que la réponse de Ripon Al Wasim, non?
Nicolas Raoul
2

Cela semble être un bug Eclipse, bien que le redémarrage d'Eclipse ait très bien fonctionné pour moi, j'espère que cela aidera quelqu'un d'autre aussi.

Arturas M
la source
2

Ce qui a résolu mon problème était de

1) Installez le jdk sous le répertoire sans espaces:

C:/Java

Au lieu de

C:/Program Files/Java

Il s'agit d'un problème connu dans Windows. J'ai réparé JAVA_HOMEaussi

2) Je java 7 et java 8 sur mon ordinateur portable. J'ai donc défini le jvm en utilisant eclipse.ini. Ce n'est pas une étape obligatoire si vous n'avez pas d' -vmentrée dans votre eclipse.ini. J'ai mis à jour:

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

Au lieu de:

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

Bonne chance

KerenSi
la source
1

J'ai eu le même problème dans les fenêtres d'éclipse que je ne pouvais pas ajouter de fichiers .class dépendants du JNI. Afin de résoudre le même problème, j'ai porté tout le code vers NetBeans IDE.

Impossible d'ajouter tous les fichiers de classes du dossier JNI / JNA dans Eclipse (JAVA, Windows 7)

Jyo the Whiff
la source
Pourquoi est-il rejeté? Voir J'ai essayé toutes les solutions possibles, je n'ai toujours pas pu résoudre le problème et j'ai ensuite porté du code sur NetBeans. J'ai répondu à cela parce que si quelqu'un restait coincé, dans le pire des cas, il pourrait obtenir de l'aide.
Jyo the Whiff
Vous avez peut-être raison, mais pour moi, JNI / JNA a bien fonctionné (pour eclipse - 4.9.0) après avoir supprimé la bibliothèque existante et configuré la bibliothèque jre par défaut, fermer le projet, ouvrir le projet.
Ajay Kumar
1

Pendant que nous travaillons avec les versions tomcat 6 et jdk 1.8, certaines fonctionnalités ne fonctionneront pas et cette erreur que vous obtenez en est une. vous devez changer la version jdk en version stable (jdk 1.6 ou jdk 1.8_65 préférable) dans eclipse pour résoudre cette erreur.

dans eclipse étape 1: propriétés -> chemin de génération java -> bibliothèque système jre (supprimer) étape 2: ajouter -> bibliothèque système jre -> alternative jre -> jre installé -> ajouter -> VM standard -> (dans la maison jre, placer le chemin jdk) -> terminer

maintenant nettoyer et vérifier le projet

NSetty
la source
1

J'ai obtenu cette erreur car j'ai installé "Eclipse IDE pour les développeurs Java d'entreprise", je l'ai désinstallé et j'ai installé "Eclipse IDE pour les développeurs Java". Problème résolu pour moi.

RVR
la source
0

Ça m'arrive après avoir installé quelques mises à jour dans eclipse mais j'ai oublié de redémarrer après. Alors peut-être que redémarrer eclipse pourrait aider.

NotX
la source
J'ai essayé de le faire, mais je ne suis pas encore autorisé à écrire des commentaires.
NotX
0

Aussi banal que cela puisse être, vérifiez votre installation Java. Pour moi, rt.jar manquait .

J'ai trouvé cela après avoir tripoté pendant une demi-journée avec les paramètres Eclipse et ne suis arrivé nulle part. Désespéré, j'ai finalement décidé d'essayer de compiler le projet à partir de la ligne de commande. Je ne m'attendais pas à voir quelque chose de mal depuis que je pensais que c'était un problème Eclipse mais à mon grand étonnement, j'ai vu ceci:

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

Je ne sais pas ce qui est arrivé à mon installation Java et où est passé rt.jar. Quoi qu'il en soit, cela nous rappelle de parcourir la liste de contrôle des échecs et de cocher toutes les cases, aussi incroyables soient-elles. Cela m'aurait fait gagner beaucoup de temps.

Nikola Kolev
la source
0

Cela fonctionne pour moi après avoir décoché 'User' --releae option 'dans eclipse Java-compiler

Dans l'étape 1 de l'éclipse: propriétés -> java Complier -> cocher l'option 'Utilisateur' - option releae '-> terminer

Version Java 13.0.1 Version Eclipse: IDE Eclipse pour les développeurs Java d'entreprise.

poovaraj
la source
0

Faites un clic droit sur le projet, sélectionnez Maven -> Mettre à jour le projet. Cela devrait résoudre le problème.

morpheus
la source
faire eclipse -> maven -> update devrait être l'une des étapes du dépannage.
Vaibs
0

Dans mon cas, c'était un grand projet modulaire et le « X rouge » n'apparaissait que dans le projet parent. Je suis allé au projet parent

Propriétés -> Chemin construit

a supprimé la bibliothèque JRE, juste cela, plus de bibliothèque JRE sur le projet parent.

Francisco Souza
la source
0

Aucune de ces solutions n'a fonctionné pour moi. Dans mon cas, le problème était que j'avais des .javafichiers produisant du code Java et j'avais accidentellement créé un fichier appelé Class.java(le contenu ne semble pas avoir d'importance). La suppression du fichier a résolu le problème.

HappyEvilSlosh
la source