Progetto Java in Eclipse: il tipo java.lang.Object non può essere risolto. È indirettamente referenziato dai file .class richiesti


209

Ricevo il seguente errore dopo aver importato un progetto in Eclipse:

Il tipo java.lang.Object non può essere risolto. È indirettamente referenziato dai file .class richiesti

Tuttavia, ho impostato il percorso come C: \ Programmi \ Java \ jdk1.6.0_41 in Eclipse Kepler, tramite Window »Preferenze» Java »JRE installati .


ho fatto "copia progetto" e l'errore è scomparso
Srinath Ganesh

Il comportamento si verifica ancora in Luna Service Release 2 (4.4.2). La soluzione qui può ancora risolvere il problema.
fobico

Risposte:


243

Questo è un fastidioso bug di Eclipse che sembra mordere di tanto in tanto. Vedi http://dev-answers.blogspot.de/2009/06/eclipse-build-errors-javalangobject.html per una possibile soluzione, altrimenti prova quanto segue;

  • Chiudi il progetto e riaprilo.

  • Pulisci il progetto (ricostruirà il percorso di build, quindi riconfigurandolo con le librerie JDK)

    O

  • Eliminare e reimportare il progetto e, se necessario, ripetere i passaggi precedenti.

La cura migliore è provare NetBeans invece di Eclipse :-)


4
Anch'io. Bizzarro bug di Eclipse. Come dice il collegamento, rimuovere la libreria JRE dal percorso di classe del progetto e aggiungerlo di nuovo risolve il problema.
Felipe Leão,

Oh per un mondo che non aveva contratti con IBM.
Zibbobz,

1
Ho avuto quell'errore su un progetto Android, facendo clic su Strumenti Android -> Correggi proprietà progetto risolto.
Lorenz,

@Zibbobz perché abbiamo bisogno di un contratto con IBM. Non riesco ancora a risolverlo con IBM Java.
Anand,

Mi chiedo se questo è correlato a quando si modifica la variabile di ambiente JAVA_HOME? Avevo cambiato la mia variabile JAVA_HOME e questa è spuntata. Ho appena rimosso / ritoccato la libreria JRE.
user2124871

222

I seguenti passaggi potrebbero aiutare:

  1. Fare clic con il tasto destro del mouse sul progetto »Proprietà» Percorso build Java
  2. Seleziona la scheda Librerie
  3. Trova la libreria di sistema JRE e rimuovila
  4. Fare clic sul pulsante Aggiungi libreria ... sul lato destro »Aggiungi la libreria di sistema JRE (JRE predefinito dell'area di lavoro)

4
Nel mio caso si è verificato perché ho rimosso accidentalmente JRE durante l'importazione del progetto [colpa mia]. Questo mi ha dato un indizio per risolvere il problema.
GayashanNA,

nel mio caso non esisteva affatto, quindi l'ho aggiunto.
Muhammed Refaat,

1
Anche se questo ha funzionato nel mio caso, ho risolto 8 errori ma me ne hanno dato altri 33!
Harsh Phoujdar,

10

Ecco come l'ho risolto: In Java-ADT: Windows - Preferenze - Java - JRE installati Basta aggiungere un altro JRE, indicando la cartella 'jre' nella cartella JDK. (jre è incluso nel jdk). Assicurati di aver scelto il nuovo jre.


10

Questo mi è successo quando ho importato un progetto Java 1.8 da Eclipse Luna in Eclipse Kepler.

  1. Fare clic con il tasto destro del mouse sul progetto> Percorso build> configura percorso build ...
  2. Seleziona la scheda Librerie, dovresti vedere Java 1.8 jre con un errore
  3. Seleziona java 1.8 jre e fai clic sul pulsante Rimuovi
  4. Aggiungi libreria ...> Libreria di sistema JRE> Avanti> area di lavoro predefinita> Fine
  5. Fare clic su OK per chiudere la finestra delle proprietà
  6. Vai al menu progetto> Pulisci ...> OK

Et voilà, che ha funzionato per me.


7

La classe di oggetti è la classe di base per tutte le classi in java, se lo manchi significa che non hai le librerie jdk nel tuo buildpath. Non so molto di Keplero, ma devi assicurarti che punti a un jdk corretto per la compilazione e un jre corretto per l'esecuzione delle tue app java.

Tuttavia, ho impostato il percorso come C: \ Programmi \ Java \ jdk1.6.0_41 dalla barra degli strumenti di eclisse Kepler-> windows-> preferenze-> java-> installato jre

Stai cercando di indicare jdk invece di jre nelle tue preferenze. barra degli strumenti-> windows-> preferenze-> java-> installato jre dovrebbe puntare a un jre e non a jdk.


Ho provato anche con quello. Ma sempre nello stesso stato di errore.
Blue Diamond

4

Nessuna delle altre risposte ha funzionato per me. Ma facendo questo ha fatto:

  1. Fare clic con il tasto destro sul progetto in Esplora pacchetti.
  2. Fonte> Pulisci ...
  3. Avanti> Fine

Quando l'ho fatto, Eclipse ha aggiunto un'importazione in una delle mie lezioni. Penso che ciò sia accaduto perché ho salvato il mio progetto con un'importazione mancante, probabilmente correndo per tornare a casa dopo il lavoro.


grazie ... funziona..per favore spiegami come funziona?
Singh Arjun,

@SinghArjun Non ne sono sicuro, ma penso che ciò accada quando il progetto viene salvato con un'importazione mancante.
Jack Pettinger,

4

Hai installato una versione diversa di JRE dopo, durante l'utilizzo della versione precedente di JRE in Eclipse.

se non di:

  1. Fare clic con il tasto destro del mouse sul progetto -> Percorso di costruzione -> Configura percorso di costruzione
  2. Vai alla scheda "Librerie"
  3. Aggiungi libreria -> Libreria di sistema JRE -> Avanti -> JRE predefinito dell'area di lavoro (oppure puoi scegliere JRE alternativo dal tuo sistema) -> Fine

se sì di.

  1. Fare clic con il tasto destro del mouse sul progetto -> Percorso di costruzione -> Configura percorso di costruzione
  2. Vai alla scheda "Librerie"
  3. Rimuovi la versione precedente
  4. Aggiungi libreria -> Libreria di sistema JRE -> Avanti -> JRE predefinito dell'area di lavoro (oppure puoi scegliere JRE alternativo dal tuo sistema) -> Fine

4

Nessuna quantità di pulizia, chiusura / riapertura del progetto e IDE, rimozione / aggiunta di JRE nel percorso di build ha funzionato per me.

La soluzione che ho trovato è stata quella di rimuovere il progetto da Eclipse (non dal disco), rimuovere i file Eclipse del progetto dal disco e importare nuovamente in Eclipse. Ha funzionato

È ancora più veloce se stai usando Maven:

  1. Chiudi Eclipse (non è necessario rimuovere il progetto)
  2. Correre mvn clean eclipse:clean eclipse:eclipse
  3. Apri Eclipse. Il tuo progetto è ancora presente e il problema dovrebbe essere risolto.

3

Un altro problema potrebbe essere che il Target di build del progetto Android non è impostato.

  1. Fare clic con il tasto destro del mouse sul progetto
  2. Scegli Proprietà
  3. Fai clic su Android
  4. Spuntare la destinazione di costruzione del progetto appropriata
  5. Applica | ok

3

Fare clic con il pulsante destro del mouse sul progetto -> Mostra in Navigator Nella vista Navigator è possibile visualizzare il file .classpath, eliminare questo file e creare il progetto. Questo ha funzionato per me. PS. Se hai integrato il tuo progetto eclipse con alcuni controlli di versione come perfoce / svn, sarà utile scollegare il progetto prima di eliminare .classpath.


2

Stavo affrontando questo problema con l'applicazione play-java su eclipse dopo aver aggiunto un controller, ho rimosso e reinstallato JRE attraverso il percorso di creazione e quindi rimosso e importato il mio progetto che ha risolto automaticamente questo problema. Grazie giroscopio.


È la stessa della risposta di Ripon Al Wasim, giusto?
Nicolas Raoul,

2

Questo sembra essere un bug di Eclipse, sebbene il riavvio di Eclipse abbia funzionato alla grande per me, spero che questo aiuti anche qualcun altro.


2

Ciò che ha risolto il mio problema era

1) Installa jdk nella directory senza spazi:

C:/Java

Invece di

C:/Program Files/Java

Questo è un problema noto in Windows. Ho sistemato JAVA_HOMEpure

2) I java 7 e java 8 sul mio laptop. Quindi ho definito jvm usando eclipse.ini. Questo non è un passaggio obbligatorio se non hai -vmaccesso al tuo eclipse.ini. Ho aggiornato:

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

Invece di:

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

In bocca al lupo


1

Ho avuto lo stesso problema in Windows Eclipse che non ho potuto aggiungere file .class dipendenti dal JNI. Per risolvere lo stesso, ho portato tutto il codice su NetBeans IDE.

Impossibile aggiungere tutti i file delle classi dalla cartella JNI / JNA in Eclipse (JAVA, Windows 7)


Perché è votato? Vedi ho provato tutte le possibili soluzioni, ancora non sono riuscito a risolvere il problema e quindi ho portato il codice su NetBeans. Ho risposto a questo perché se qualcuno fosse bloccato, nel peggiore dei casi, potrebbe ricevere aiuto.
Jyo the Whiff,

Potresti avere ragione, ma per me JNI / JNA ha funzionato bene (per eclipse - 4.9.0) dopo aver eliminato la libreria esistente e impostato la libreria jre predefinita, chiudi progetto, apri progetto.
Ajay Kumar,

1

Mentre stiamo lavorando con le versioni tomcat 6 e jdk 1.8, alcune delle funzionalità non funzioneranno e questo errore che stai riscontrando è uno. è necessario modificare la versione jdk in versione stabile (preferibilmente jdk 1.6 o jdk 1.8_65) in eclipse per risolvere questo errore.

in eclipse passaggio 1: proprietà -> percorso build java -> libreria di sistema jre (rimuovi) passaggio 2: aggiungi -> libreria di sistema jre -> jre alternativo -> jre installato -> aggiungi -> VM standard -> (in jre home, posiziona percorso jdk) -> fine

ora pulisci e controlla il progetto


1

Ho ricevuto questo errore perché ho installato "Eclipse IDE per sviluppatori Java aziendali", ho disinstallato questo e installato "Eclipse IDE per sviluppatori Java". Problema risolto per me.


0

Mi è successo dopo aver installato alcuni aggiornamenti in Eclipse ma ho dimenticato di riavviare in seguito. Quindi forse riavviare eclipse potrebbe aiutare.


Ho provato a farlo, ma non mi è ancora permesso scrivere commenti.
NotX,

0

Per quanto banale possa essere, controlla l'installazione di Java. Per me mancava rt.jar .

L'ho trovato dopo aver giocherellato per mezza giornata con le impostazioni di Eclipse e non arrivare da nessuna parte. Disperato, ho finalmente deciso di provare a compilare il progetto dalla riga di comando. Non mi aspettavo di vedere qualcosa di sbagliato poiché pensavo che fosse un problema di Eclipse, ma con mio stupore ho visto questo:

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

Non so cosa sia successo alla mia installazione Java e dove sia andato rt.jar. Comunque questo viene come promemoria per passare attraverso la checklist fallita e spuntare tutte le caselle, non importa quanto siano incredibili. Mi avrebbe risparmiato un sacco di tempo.


0

Funziona per me dopo aver deselezionato "User" - opzione "releae" nel compilatore Java di eclipse

Nel passaggio 1 di eclipse: proprietà -> java Complier -> selezionando l'opzione 'Utente' - opzione releae '-> fine

Versione Java 13.0.1 Versione Eclipse: Eclipse IDE per sviluppatori Java aziendali.


0

Fare clic con il tasto destro sul progetto, selezionare Maven -> Aggiorna progetto. Questo dovrebbe risolvere il problema.


facendo eclipse -> maven -> l'aggiornamento dovrebbe essere uno dei passaggi durante la risoluzione dei problemi.
Vaibs,

0

Nel mio caso si trattava di un grande progetto modulare e la " X rossa " era visibile solo nel progetto genitore. Sono andato al progetto genitore

Proprietà -> Percorso costruito

a rimosso la libreria JRE lì, solo che, nessuna libreria JRE sul progetto genitore più.


0

Nessuna di queste soluzioni ha funzionato per me. Nel mio caso il problema era che avevo del codice Java che produceva .javafile e avevo accidentalmente creato un file chiamato Class.java(il contenuto non sembra importare). La rimozione del file ha risolto il problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.