Il completamento del codice Eclipse / Java non funziona


596

Ho scaricato, decompresso e installato Eclipse 3.4.2 con alcuni plugin (notevole, EPIC, Clearcase, QuantumDB, MisterQ).

Ora trovo che quando modifico i progetti Java il completamento del codice non funziona. Se scrivo String.e premo ctrl+ spaceun popup mostra "Nessuna proposta predefinita" e la barra di stato in basso mostra "Nessun completamento disponibile".

Qualche idea?


1
Per quelli di voi che stanno cercando di risolvere questo problema su Ubuntu, [ecco la risposta] [1]. [1]: askubuntu.com/questions/243639/…
syntagma,

Risposte:


1247

Prova a ripristinare le opzioni predefinite in ' Windows > Preferences > Java > Editor > Content Assist > Advanced'

Un esempio del tipo di dati che vedi in questa schermata delle preferenze, tuttavia non necessariamente quello che hai attualmente.

impostazione dell'assistenza ai contenuti di eclipse

(Da Vadim in questo post sul blog "Content Assist Duplicates in Eclipse (Mylyn)" :
se hai voci Mylyn duplicate, deseleziona le voci duplicate che non contengono " (Mylyn)" nel loro nome)

La pagina della guida di Eclipse definisce l'elenco predefinito da ripristinare:

Seleziona i tipi di proposta contenuti nell'elenco dei contenuti "predefiniti" :

  • Altre proposte Java,
  • Proposte di modelli SWT,
  • Proposte di modelli,
  • Tipo di proposte

3
non ho idea di come ciò sia cambiato nel mio ambiente - di certo non l'ho fatto, ma la tua soluzione funziona! Grazie.
Pstanton,

71

Sto aggiungendo una risposta qui nel caso in cui qualcun altro la trovi su Google. Stessi sintomi; problema diverso. Per me, il tipo di cache era diventato corrotto.

Da http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.html

  • Esci da Eclipse
  • Vai nell'area di lavoro / .metadata / .plugins / org.eclipse.jdt.core
  • Rimuovere * .index e savedIndexNames.txt
  • Riavvia Eclipse e cerca Ctrl+ Tper il tipo offensivo. Gli indici saranno ricostruiti.

+1, questo ha funzionato per me. In precedenza stavo anche soffrendo di Eclipse pensando che il mio progetto fosse in 1.5 nonostante tutte le opzioni dicessero diversamente, quindi deve essere stato corrotto durante questo problema.
Philip Guin,

3
Aspetta, non importa. Dopo aver provato il metodo, CA funziona esattamente una volta, quindi esplode di nuovo. Ugh. Il problema persiste anche dopo aver ricreato l'intero spazio di lavoro. Nessun'altra soluzione qui sembra funzionare ...
Philip Guin,

2
+1. Nota: se provi l'assistenza ai contenuti in un'espressione lambda, potrebbe non essere ben supportato dalla tua versione di Eclipse.
Bludwarf,

Ha funzionato così bene Grazie!
Modo

27

Nel caso in cui qualcuno venga qui e desideri attivare la funzione di completamento automatico, vai a

Preferences -> Java -> Editor -> Content Assist.

Quindi nella sezione Attivazione automatica compila i trigger di attivazione automatica per Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

inserisci qui la descrizione dell'immagine


Questo può rendere l'eclissi molto lenta con una grande base di codice.
J-ho,

19

Per coloro che eseguono Xfce + con il plugin IBus attivato, potrebbero esserci conflitti di scelta rapida da tastiera.

Vedi maggiori informazioni sul mio blog: http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

AGGIORNAMENTO :

come suggerito dal commento di @nhahtdh, aggiungendo alcune altre informazioni per rispondere direttamente: il plugin IBus in Xfce utilizza di default Ctrl+ Spacescorciatoia per cambiare il layout della tastiera. Per cambiarlo, vai su: Opzioni e modificalo in qualsiasi altra cosa tu preferisca.


3
Includi qui le parti essenziali del tuo blog, nel caso in cui non sia disponibile in futuro.
nhahtdh,

2
Stesso problema in LXDE. Vai a Preferences-> Keyboard Inpute rimuovi il Next input methodcollegamento.
Kshitiz Sharma,

1
Gli stessi problemi si presentano con l'ambiente desktop Cinnamon.
Akkusativobjekt,

11

Controlla la lib del tuo progetto. È possibile che tu abbia incluso due di questi file jar in cui è disponibile la stessa classe o che una classe nel codice può essere rifratta in due file jar. In tal caso, anche eclipse interrompe l'assistenza al codice poiché è totalmente confuso.

Il modo migliore per verificare questo è andare al file in cui assist non funziona e commentare tutte le importazioni lì, quindi aggiungere le importazioni una per una e controllare ad ogni importazione se il codice assist funziona o no. Puoi facilmente trovare la classe con riferimenti duplicati .


9

Nessuno di questi ha funzionato per me.

Ho riscontrato questo problema solo una volta in una lezione particolare. Ciò che alla fine ha funzionato per me è stato eliminare la classe offensiva e ricrearla. Problema risolto ... mistero non così tanto!


5

Se hai installato Google Toolbar per Internet Explorer, potresti avere lo stesso problema. Perché, la barra degli strumenti acquisisce il collegamento ctrl +Space.


5

Ho avuto questo problema e come @Marc, solo su una classe particolare. Ho scoperto che dovevo designare Open With = Java Editor. Come novizio di Eclipse non mi ero nemmeno reso conto che stavo solo usando un semplice editor di testo.

In Esplora pacchetti, fai clic con il pulsante destro del mouse sul file e scegli "Apri con".


4

Ho affrontato questo problema e ho passato ore a cercare di capire il problema. Ho cercato di seguire i passaggi indicati nelle diverse risposte sopra, la soluzione che ho trovato è sulla stessa linea suggerita da Mona, ma leggermente diversa. Ho cercato di aggiungere un commento alla risposta di Mona ma nessuna opzione era disponibile. Il problema con la mia eclissi era che il percorso di classe in qualche modo era corrotto e mancavano tutti i barattoli e i progetti dipendenti. dopo aver preso l'ultimo .classpath dal repository ha funzionato bene.


4

Devo anche affrontare questo problema, ma è stato risolto in modo diverso. I passaggi che seguo possono essere utili per gli altri.

  1. Fai clic destro sul progetto (quello su cui stai lavorando)
  2. Vai su Proprietà> Percorso build Java> Libreria di sistema JRE
  3. Fai clic su Modifica ... a destra
  4. Scegli JRE 7

4

Dopo aver verificato la configurazione e il completamento non funziona ancora:

  • assicurati di avere la giusta struttura di directory.

Vedi l'icona giusta accanto al file ?:

inserisci qui la descrizione dell'immagine

Ti dirà come il file verrà trattato da Eclipse:

inserisci qui la descrizione dell'immagine

Sto postando questa risposta come ho avuto quella storia con con artefatto webapp Maven. Di default Maven-WebApp non crea una cartella per i sorgenti e metto Java in risorse, chiedendomi per 5 minuti cosa stesse succedendo ... :)


3

Verifica di non aver filtrato molte opzioni in Finestra> Preferenze> Java> Aspetto> Filtri di tipo

Gli elementi in questo elenco non verranno visualizzati nella soluzione rapida, completati automaticamente o visualizzati in altri punti come la finestra di dialogo Tipo aperto.


3

Un'altra soluzione che ha funzionato per me è andare su Java -> Aspetto -> Digita filtri e disabilita tuttoinserisci qui la descrizione dell'immagine


3

Forse questo aiuta altre persone che incontrano lo stesso problema.

La mia configurazione: vecchio progetto Gradle (versione Gradle 2.12) realizzato da qualcun altro, importato usando la procedura guidata Importazione Gradle in STS (Eclipse Oxygen.2 (4.7.2)).

Neanche il completamento del codice ha funzionato (e ho ancora dei J vuoti nei file Java), ma almeno ho ottenuto il completamento del codice funzionando:

  • fare clic con il tasto destro sulla cartella del progetto> Proprietà> Gradle> Configura impostazioni area di lavoro> Java> Editor> Content Assist> Avanzate
  • seleziona "Proposte Java nella finestra superiore.
  • 2x Applica e chiudi

2

Nel mio caso, Intellisense era scomparso in poche classi in un solo progetto. Si è scoperto che ciò era dovuto a una libreria mancante nel percorso di compilazione (sebbene funzionasse in precedenza).

Quindi controlla sicuramente tutti gli errori o i problemi in Eclipse e prova a scoprire se manca una libreria


2

Mi sono imbattuto in questo e alla fine è stato che stavo aprendo il file con l'editor di testo e non con l'editor Java.

Volevo commentare su https://stackoverflow.com/users/607470/elroy-flynn response ma il commento aggiunto funziona solo dopo che ho una valutazione di 50? non sono sicuro WTF che è ...

Grazie Tom


Il blocco della reputazione è fondamentalmente solo così le persone hanno ragioni per ottenere di più oltre a averne di più. Dal momento che agisce anche come una misura di quanto sei coinvolto e rispettato nella comunità (cioè come reputazione), ottieni più privilegi man mano che ottieni più reputazione. Potresti voler dare un'occhiata al tour per ulteriori spiegazioni sul funzionamento del sito: stackoverflow.com/tour .
Amndeep7,

Questo è davvero solo un commento, la risposta che menzioni copre già il problema dell'editor di testo. Capisco se non vuoi eliminarlo e perdere il karma però.
Noumenon,

1

Per me il problema era un conflitto tra diverse versioni della stessa libreria. L'assistente Eclipse utilizzava una versione precedente rispetto a Maven.

Ho dovuto andare nella directory .m2 ed eliminare la versione lib indesiderata + riavvio eclipse.


1

Riscontro problemi su Eclipse Neon durante la modifica di un file che non appartiene alla directory del progetto . Quando copio lo stesso file nella directory principale del progetto, nemmeno nella directory src, il completamento inizia a funzionare.

Quando il file viene aperto da una directory diversa, funziona solo il completamento per JRE. Questo è ad esempio: java.completa, ma junit.non lo fa.


1

Nel caso in cui qualcuno arrivasse a un punto disperato in cui nulla funziona ... Ci è successo che il contenuto assistito in qualche modo si è ridotto, quindi non è stato mostrato alcun suggerimento, si può vedere solo "Premi Ctrl + Spazio per non Java ...". Quindi, si trattava solo di trascinare l'angolo del contenuto assistito per ingrandire il pop-up.

Lo so, imbarazzante. Spero che sia d'aiuto.

Nota: questo era un server Ubuntu con Xfce4 che utilizzava Eclipse Oxygen.


1

Per coloro che usano l'ultima build eclipse 3-19:

Mi è appena successo durante l'aggiornamento da Oxygen alla versione 3-19 di eclissi, quindi presumo che la funzione di completamento automatico non sia stata migrata correttamente durante il processo di aggiornamento.

L'unica soluzione che ha funzionato per me era creare un nuovo spazio di lavoro eclissi e importare il / i progetto / i in esso. Potrebbero essere necessari alcuni minuti, ma ne vale la pena, rispetto al tempo impiegato in altre soluzioni ...


Sì, per me non riesco a sfogliare i metodi Java, fare clic su Sfoglia / Apri dichiarazione non funziona. E questo succede abbastanza frequentemente, i file di classe Java sono diventati effettivamente file di testo. Quindi continuo a cancellare l'area di lavoro e importare il progetto maven, di nuovo in azione tra un minuto.
signonsridhar,


0

Ho riscontrato questo problema dall'aggiornamento a Eclipse 2019-09. Sulla base di alcuni dei suggerimenti di cui sopra, questo è ciò che ha funzionato per me.

Ho dovuto andare su Eclipse -> Preferenze -> Java -> Editor -> Content Assist -> Avanzate.

Editor Java / Content Assist Advanced

Ho scoperto che se accendevo una qualsiasi delle proposte di associazione chiave, Java Non-Type, Java, Java (Task-Focused) o Java Type, allora ero in grado di utilizzare il completamento automatico. Se li ho attivati ​​tutti, non solo il completamento automatico ha funzionato, ma ho elencato metodi duplicati. Immagino, ma probabilmente userò le proposte di tipo Java. Qualsiasi chiarimento di ciò che differisce per questi quattro tipi sarebbe apprezzato.


0

Esecuzione di STS su progetti Java Spring Boot, ecco cosa funziona per me:

inserisci qui la descrizione dell'immagine

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.