Errore Eclipse: "L'importazione XXX non può essere risolta"


135

Sto cercando di lavorare con Hibernate in Eclipse. Sto creando un nuovo semplice progetto e ho scaricato anche un progetto collegiale, tramite CVS. Entrambi non funzionano, mentre su Eclipse del mio collega lo fanno. Il problema è che, per ogni importazione di una classe Hibernate, Eclipse dice:

The import org.hibernate cannot be resolved

Ma tutti i barattoli di Hibernate si trovano nel percorso di costruzione, ovvero:

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

1
come hai aggiunto questi jar nel tuo percorso di compilazione?
Jigar Joshi,

3
per Proprietà> Percorso build Java> Librerie> Aggiungi JAR esterni
bluastro


1
Se ha funzionato e ora no, vedi la risposta di
@dogbane

controlla se c'è spazio nella cartella di importazione. se c'è uno spazio, rimuovi lo spazio e importa i progetti su Eclipse.
schin chan,

Risposte:


283

Prova a pulire il tuo progetto andando alla seguente voce di menu:

Project > Clean...

Se il problema persiste, prova a rimuovere i vasetti dal percorso di creazione e ad aggiungerli di nuovo.


5
potrebbe essere un problema di JRE. Prova a selezionare un "JRE alternativo" nelle proprietà del progetto.
dogbane,

10
Clean ha funzionato anche per me. Cosa succede esattamente (tutto è andato all'improvviso all'improvviso) e in che modo Clean aiuta?
Sabre Runner,

1
Questo ha risolto il problema anche per me; non è un progetto di ibernazione, ma un progetto libGdx , che chiama le mie importazioni Java e non vasetti. Stessa domanda di @SabreRunner e anche: c'è un bug da qualche parte negli strumenti dell'ambiente?
Zac,

3
Ha funzionato anche per me. È super frustrante quando il menu di aiuto contestuale trova la tua classe e la mano digitando la stessa importazione sopra quelli contrassegnati "non può essere risolto" e nessun errore ...
Shanimal

1
In questo modo NON aiuta nel mio caso. La mia versione di Eclipse è: Neon.3 Release (4.6.3)
Timothy.Li

27

Ovviamente ci sono casi in cui esiste un problema valido, tuttavia Eclipse genera questo errore senza una buona ragione a volte.

Questo fermo (2019-03) è un vecchio bug di Eclipse (2010) che può essere risolto apportando una modifica trascurabile alle impostazioni del progetto.

L'impostazione che ho scelto di modificare era: Progetto> Proprietà> Percorso build Java> Ordina ed esporta> apporta una modifica di ordine insignificante> Applica.

La modifica dell'ordine indietro non regredisce al problema. Il semplice tocco del file potrebbe anche risolvere il problema (testerò il tocco la prossima volta).


1
File> Proprietà Dovrebbe essere modificato in Progetto> Proprietà.
Timoteo,

In questo modo NON aiuta nel mio caso. La mia versione di Eclipse è: Neon.3 Release (4.6.3)
Timothy.Li

Per me, la libreria di sistema JRE doveva essere al di sopra delle dipendenze Maven nella scheda Ordine di costruzione ed esportazione.
Anthony Hayward,

2
Questo bug ora ha almeno 9 anni.
user1133275

È ancora lì, novembre 2019. Sheesh.
Tullochgorum,

22

Pulisci il progetto. E ricontrolla che i barattoli siano realmente sul percorso di compilazione (senza errori). Assicurati anche che non ci sia nulla nella vista "Problemi".


L'ho già provato più di una volta: con singoli vasetti, all'interno di una libreria, ... Sembra uno strano errore!
bluastro

1
hai qualcosa nella vista Problemi?
Bozho,

Solo i problemi che ho detto e avvertimenti del tipo "La classe serializzabile Azienda non dichiara un campo serialVersionUID finale statico di tipo lungo".
bluastro

18

Ho trovato il problema. Era il hibernate3.jar. Non so perché non sia stato estratto bene dal .zip, forse corrotto . Un buon modo per verificare se i barattoli sono danneggiati o no è quello di navigare attraverso la loro struttura ad albero in "Esplora progetti" in Eclipse: se non riesci ad espandere un nodo jar probabilmente è danneggiato. Ho visto che avere pacchetti corrotti è frequente quando li trascini in "Esplora progetti". Forse è meglio spostarli e copiarli nell'ambiente del sistema operativo! Grazie a tutti.


17

Se è un progetto Maven, fai clic anche su Maven >> Aggiorna progetto ... (F5)

Aggiorna il progetto Maven


Se si importa un progetto maven come "progetto Java", si verifica questo problema. Converti progetto in progetto maven e aggiorna come hai detto, quindi il problema è sparito.
Kodmanyagha,

8

Ho risolto rimuovendo il progetto (non eliminare sul disco) e importandolo di nuovo.


8
  1. progetto pulito Progetto -> pulito ...
  2. Fare clic con il tasto destro del mouse sul progetto -> BuildPath -> Configura BuildPath -> scheda Librerie ->

Fare doppio clic su JRE SYSTEM LIBRARY -> Quindi selezionare JRE alternativo


6

Ho avuto il problema, che il percorso di classe era in qualche modo rotto.

Quindi fai clic destro sul progetto in Esplora pacchetti> Strumenti plug-in> Aggiorna classpath ... l'ha fatto per me


In Neon.3 Release (4.6.3), NON ci sono strumenti plug-in nel menu contestuale facendo clic con il tasto destro del mouse sul progetto in Esplora pacchetti
Timothy.Li

6

Ho risolto questo problema aggiornando il progetto: fare clic con il tasto destro sul progetto Maven, selezionare Maven -> Aggiorna progetto -> selezionare la casella di controllo Forza aggiornamenti di istantanee / rilasci.


5

Prova ad aggiungere la libreria di sistema JRE nel percorso di compilazione del tuo progetto.


3

Con me mi ha aiutato a cambiare il livello di conformità del compilatore . Per motivi sconosciuti è stato impostato su 1,6 e l'ho modificato in 1.8.

Una volta a livello di progetto, fai clic con il pulsante destro del mouse su progetto> Proprietà> Compilatore Java, mentre in Eclipse fai clic sul menu Finestra> Preferenze> Java> Compilatore.


3

Ho provato tutte le risposte sopra, ma senza fortuna. Nel mio caso, esiste una cartella build / classes generata con alcuni file ".class" aggiuntivi. Ho finito con l'esploratore di pacchetti, facendo clic con il tasto destro del mouse sul progetto e selezionando l'opzione "Aggiorna" e questo ha reso di nuovo disponibile la cartella build / classes risolvendo il problema.


3

Questo ha risolto il mio problema.

1) progetto pulito progetto -> pulito ...

2) Fai clic destro sul progetto -> BuildPath -> Configura BuildPath -> scheda Librerie -> Fai doppio clic su JRE SYSTEM LIBRARY -> Quindi seleziona JRE alternativo

3) Fai clic su Salva

4) Di nuovo vai al tuo progetto in Esplora progetti e fai clic con il pulsante destro del mouse sul progetto -> BuildPath -> Configura BuildPath -> scheda Librerie -> Fai doppio clic su JRE SYSTEM LIBRARY -> Questa volta seleziona "Execution Environment"

5) Applica


2

Nel mio caso era un barattolo rotto nel repository Maven. Elimina i file jar nel repository e lascia che Maven li scarichi di nuovo.

Quando correvo mvn clean installdalla riga di comando, funzionava bene, ma Eclipse non riusciva ancora a compilare il codice. Quando ho corso maven installsu Eclipse, ho visto che Maven si lamentava di un file jar errato. Così l'ho cancellato e sono corso di maven installnuovo. Il problema era sparito.


2

Per scaricare il file jar inesistente nella directory .m2, è necessario eseguire il mvn clean installcomando per il progetto pom.xml. Quindi è necessario aggiornare le dipendenze del progetto facendo clic su Alt+F5. Questo funziona per me!


2

La rimozione di "module-info.java" ha risolto il problema per me!

Questo file è stato generato automaticamente ed è apparso nella mia gerarchia ...


1

Ho avuto lo stesso problema perché ho aggiunto un barattolo che ho creato, dove avevo impostato la directory di base del packaging diversa dalla directory di base delle classi. Di conseguenza la classe, ad esempio, java.util.Listdoveva essere importata come util.Listse l'importazione suggerita fosse la prima.

Controllare i barattoli importati nelle librerie di riferimento per verificare che siano importati correttamente


1

Non ho capito il ragionamento alla base di questo, ma questo ha risolto lo stesso problema che stavo affrontando. Potrebbe essere necessario eseguire questi passaggi prima di eseguire i passaggi indicati nelle soluzioni precedenti (Pulisci tutti i progetti e Costruisci automaticamente).

fare clic con il tasto destro del mouse sul progetto -> Proprietà -> Sfaccettature del progetto -> selezionare Java -> Applica


1

Ogni volta che riscontri questo problema, vai su Progetto> Pulisci, quindi seleziona Pulisci tutti i progetti. Dovrebbe essere risolto, altrimenti prova a eliminare quei barattoli e aggiungerli di nuovo. L'ultima cosa sarebbe provare a riavviare Eclipse.


1

pom.xml

Se è un progetto Maven, vai su pom.xml e rimuovi tutti i vasetti di dipendenza. Salvarla. Il progetto verrà creato automaticamente.

Quindi aggiungi nuovamente i vasetti di dipendenza (puoi fare Ctrl+ Z). Salvarla. Il progetto verrà creato automaticamente e non vedrai quell'errore.


1

Rimuovi la dipendenza dal tuo POM.XML e scarica il jar e aggiungilo nel buildpath.

qualche volta -> maven non rifletterà i nuovi cambiamenti e questo potrebbe causare questo tipo di prob


0

Prova a verificare se sono presenti tutte le librerie. Ho avuto lo stesso problema. Ma l'ho risolto spostando la cartella lib e aggiungendo di nuovo tutti i vasetti nel percorso di compilazione.


0

Ho avuto lo stesso problema. Ho scaricato il jar e l'ho aggiunto al percorso di compilazione, ma non ho notato che l'estensione era .jar.zip. L'ho nuovamente convertito in .jar e aggiunto al percorso di compilazione.

Ha risolto il mio problema. È un errore molto sciocco, ma l'ho scritto qui nel caso potesse aiutare qualcuno.


0

Se stai lavorando con Maven e hai questo problema, controlla il server del repository (ad esempio il server Nexus), se l'artefatto è lì. A volte, possono cambiare il nome del manufatto e si tenta di ottenere il manufatto con il suo vecchio nome.


0

Risolto collegando la fonte. Dall'esploratore fare clic con il tasto destro del mouse sul progetto, selezionare Proprietà, selezionare Percorso build Java, selezionare Sorgente dalle schede, premere il pulsante "LinkSource". E specificando la cartella da aggiungere al progetto.


0

Non ho potuto importare pure. Mi ci sono volute alcune ore per capire che ho provato a usare una libreria / jar 1.6, mentre stavo cercando di compilare per 1.8. Quando ho cambiato il mio progetto anche per utilizzare 1.6, il problema di importazione è andato. Tutti i messaggi di errore stavano conducendo in direzioni sbagliate. Proprio nella fonte ho trovato alcune limitazioni nella versione 1.6. E: ad esempio .settings e .classpath (Ricerca file) -> org.eclipse.jdt.core.compiler.codegen.targetPlatform = 1.6 possono dare un suggerimento su tali problemi.


0

Ho affrontato lo stesso problema e l'ho risolto rimuovendo un barattolo che è stato aggiunto due volte in due diverse dipendenze sul mio pom.xml. La rimozione di una delle dipendenze ha risolto il problema.


0

Per quanto mi riguarda, mi sembrava di aggiungere il livello sbagliato della cartella della libreria. Ho scaricato Jericho HTML Parser , decompresso in eclipse-workspace/libraries/jericho-html-3.4/

Quindi, quando si aggiungeva questo come una cartella di libreria esterna, il trucco era spostarsi su quella cartella, evidenziare la cartella "classi" e premere Apri. In precedenza avevo provato ad aggiungere sia il genitore che i vari livelli di sottocartelle e non funzionava.

Questo è praticamente spiegato qui , dice

È inoltre possibile aggiungere una cartella di classe , una directory contenente file di classe Java che non si trovano in un JAR.

Ci sono due lezioni apprese qui per me, mi scuso se sono fuori tema:

  1. Leggi attentamente le istruzioni - come parola per parola!

  2. Non arrenderti: è la prima volta che aggiungo una libreria, mi ci sono volute circa due ore per aggiungerlo.


0

Soluzione per Eclipse IDE

Nel mio caso ho riparato correggendo uno di questi due file che potrebbero essere danneggiato: .classpath o .project .

Per riparare uno qualsiasi dei file danneggiati, è possibile copiare da un altro progetto che ha sia il .project file o .classpath file in questione ed è privo di errori. Ma assicurati di non aggiungere ulteriori impostazioni che non verranno utilizzate.


0

[ Frame Frame Igniter ] [ Importa libreria ]

Prova a fare clic con il pulsante destro del mouse sul progetto in una vista Esplora progetti, scegli aggiorna . Tutti i marcatori di errore sono andati sorprendentemente nel mio caso.


Non sono bravo in Eclipse. Ho iniziato a utilizzare Android Studio per sviluppare Android. Ma è fastidioso vedere marcatori di errore rossi in bilico tutto il tempo mentre l'intero progetto funziona ancora bene. Mi è successo quando uso il compositore per importare librerie in questo modo:

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

use \Firebase\JWT\JWT;
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.