Die Vervollständigung des Eclipse / Java-Codes funktioniert nicht


595

Ich habe Eclipse 3.4.2 mit einigen Plugins (bemerkenswert, EPIC, Clearcase, QuantumDB, MisterQ) heruntergeladen, entpackt und eingerichtet.

Jetzt stelle ich fest, dass beim Bearbeiten von Java-Projekten die Code-Vervollständigung nicht funktioniert. Wenn ich + tippe String.und drücke, wird in einem Popup "Keine Standardvorschläge" und in der Statusleiste unten "Keine Vervollständigungen verfügbar" angezeigt.ctrlspace

Irgendwelche Ideen?


1
Für diejenigen unter Ihnen, die versuchen, dies unter Ubuntu zu beheben, [hier ist die Antwort] [1]. [1]: askubuntu.com/questions/243639/…
Syntagma

Antworten:


1246

Versuchen Sie , die Standardoptionen in ' Windows > Preferences > Java > Editor > Content Assist > Advanced' wiederherzustellen.

Ein Beispiel für die Art von Daten, die Sie in diesem Einstellungsbildschirm sehen, jedoch nicht unbedingt das, was Sie derzeit haben.

Einstellung für die Unterstützung von Eclipse-Inhalten

(Von Vadim in diesem Blog-Beitrag "Content Assist Duplicates in Eclipse (Mylyn)" :
Wenn Sie doppelte Mylyn-Einträge haben, deaktivieren Sie die doppelten Einträge, (Mylyn)deren Name nicht " " enthält. )

Die Eclipse-Hilfeseite definiert die Standardliste, die wiederhergestellt werden soll:

Wählen Sie die Angebotsarten aus, die in der Liste der Standard-Inhaltshilfen enthalten sind :

  • Andere Java-Vorschläge,
  • Vorschläge für SWT-Vorlagen,
  • Vorlagenvorschläge,
  • Typ Vorschläge

3
Keine Ahnung, wie sich dies in meiner Umgebung geändert hat - ich habe es sicherlich nicht getan, aber Ihre Lösung funktioniert! Vielen Dank.
Pstanton

71

Ich füge hier eine Antwort hinzu, falls jemand anderes dies bei Google findet. Gleiche Symptome; anderes Problem. Für mich waren die Typ-Caches korrupt geworden.

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

  • Beenden Sie Eclipse
  • Gehen Sie zu Arbeitsbereich / .metadata / .plugins / org.eclipse.jdt.core
  • Entfernen Sie * .index und savedIndexNames.txt
  • Starten Sie Eclipse neu und suchen Sie Ctrl+ Tnach dem fehlerhaften Typ. Die Indizes werden neu erstellt.

+1, das hat bei mir funktioniert. Ich hatte auch zuvor unter Eclipse gelitten, weil ich dachte, mein Projekt sei in 1.5, obwohl alle Optionen etwas anderes sagten, also muss es während dieses Problems beschädigt worden sein.
Philip Guin

3
Warten Sie, egal. Nachdem Sie Ihre Methode ausprobiert haben, funktioniert CA genau einmal und wird dann erneut in die Luft gesprengt. Pfui. Das Problem besteht auch nach der Neuerstellung des gesamten Arbeitsbereichs. Keine andere Lösung hier scheint zu funktionieren ...
Philip Guin

2
+1. Hinweis: Wenn Sie versuchen, den Inhalt in einem Lambda-Ausdruck zu unterstützen, wird er möglicherweise von Ihrer Eclipse-Version nicht gut unterstützt.
Bludwarf

Hat so gut funktioniert. Vielen Dank!
Modo

27

Wenn jemand hierher kommt und die Autovervollständigungsfunktion aktivieren möchte, gehen Sie zu

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

Dann in der Auto - Aktivierung Abschnitt fill in Auto - Aktivierung Auslöser für Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

Geben Sie hier die Bildbeschreibung ein


Dies kann Ihre Sonnenfinsternis bei großer Codebasis sehr langsam machen.
J-ho

19

Bei Benutzern von Xfce + mit aktiviertem IBus-Plugin kann es zu Konflikten mit Tastenkombinationen kommen.

Weitere Informationen finden Sie in meinem Blog: http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

UPDATE :

Wie in @ nhahtdhs Kommentar vorgeschlagen, fügen Sie einige weitere Informationen hinzu, um direkt zu antworten: Das IBus-Plugin in Xfce verwendet standardmäßig Ctrl+ SpaceVerknüpfung zum Umschalten des Tastaturlayouts. Um es zu ändern, gehen Sie zu: Optionen und ändern Sie es nach Belieben.


3
Bitte fügen Sie hier die wesentlichen Teile Ihres Blogs hinzu, falls es in Zukunft nicht mehr verfügbar sein sollte.
nhahtdh

2
Gleiches Problem in LXDE. Gehen Sie zu Preferences-> Keyboard Inputund entfernen Sie die Next input methodVerknüpfung.
Kshitiz Sharma

1
Dieselben Probleme treten bei der Cinnamon-Desktop-Umgebung auf.
Akkusativobjekt

11

Überprüfen Sie die Bibliothek Ihres Projekts. Es kann sein, dass Sie zwei solche JAR-Dateien enthalten haben, in denen dieselbe Klasse verfügbar ist, oder dass eine Klasse im Code in zwei JAR-Dateien aktualisiert werden kann. In diesem Fall hört auch Eclipse auf, Code zu unterstützen, da er völlig verwirrt ist.

Eine bessere Möglichkeit, dies zu überprüfen, besteht darin, in die Datei zu gehen, in der der Assist nicht funktioniert, und alle Importe dort zu kommentieren, als die Importe einzeln hinzuzufügen und bei jedem Import zu überprüfen, ob der Code-Assist funktioniert oder nicht. Sie können die Klasse mit doppelten Aktualisierungen leicht finden .


9

Nichts davon hat bei mir funktioniert.

Ich habe dieses Problem nur in einer bestimmten Klasse erlebt. Was für mich schließlich funktionierte, war, die beleidigende Klasse zu löschen und neu zu erstellen. Problem gelöst ... Rätsel nicht so sehr!


5

Wenn Sie Google Toolbar für IE installiert haben, kann das gleiche Problem auftreten. Weil die Symbolleiste die Tastenkombination Strg erfasst +Space.


5

Ich hatte dieses Problem und mag @Marc nur in einer bestimmten Klasse. Ich entdeckte, dass ich Open With = Java Editor bezeichnen musste. Als Eclipse-Neuling hatte ich nicht einmal bemerkt, dass ich nur einen einfachen Texteditor verwendete.

Klicken Sie im Paket-Explorer mit der rechten Maustaste auf die Datei und wählen Sie "Öffnen mit".


4

Ich war mit diesem Problem konfrontiert und verbrachte Stunden damit, das Problem herauszufinden. Ich habe versucht, die in den verschiedenen Antworten oben genannten Schritte zu befolgen. Die Lösung, die ich gefunden habe, entspricht den von Mona vorgeschlagenen, ist jedoch geringfügig unterschiedlich. Es wurde versucht, Monas Antwort als Kommentar hinzuzufügen, aber es war keine Option verfügbar. Das Problem mit meiner Sonnenfinsternis war, dass der Klassenpfad irgendwie beschädigt wurde und alle Gläser und abhängigen Projekte fehlten. Nachdem Sie den neuesten .classpath aus dem Repository genommen haben, hat es einwandfrei funktioniert.


4

Ich bin auch mit diesem Problem konfrontiert, aber es wird auf andere Weise gelöst. Schritte, die ich befolge, können für andere hilfreich sein.

  1. Klicken Sie mit der rechten Maustaste auf das Projekt (das, an dem Sie arbeiten).
  2. Gehen Sie zu Eigenschaften> Java-Erstellungspfad> JRE-Systembibliothek
  3. Klicken Sie rechts auf Bearbeiten
  4. Wählen Sie die JRE 7

4

Sobald Sie Ihre Konfiguration überprüft haben und der Abschluss immer noch nicht funktioniert:

  • Stellen Sie sicher, dass Sie die richtige Verzeichnisstruktur haben.

Sehen Sie das rechte Symbol neben der Datei?:

Geben Sie hier die Bildbeschreibung ein

Hier erfahren Sie, wie die Datei von Eclipse behandelt wird:

Geben Sie hier die Bildbeschreibung ein

Ich poste diese Antwort, da ich diese Geschichte mit Maven Webapp Artefakt hatte. Standardmäßig erstellt Maven-WebApp keinen Ordner für Quellen und ich stelle mein Java in Ressourcen. Ich frage mich 5 Minuten lang, was los ist ... :)


3

Stellen Sie sicher, dass Sie im Fenster> Einstellungen> Java> Darstellung> Typfilter nicht viele Optionen herausgefiltert haben

Elemente in dieser Liste werden nicht in der Schnellkorrektur angezeigt, automatisch vervollständigt oder an anderen Stellen wie im Dialogfeld "Typ öffnen" angezeigt.


3

Eine andere Lösung, die für mich funktioniert hat, besteht darin, zu Java -> Darstellung -> Typfilter zu wechseln und alle zu deaktivierenGeben Sie hier die Bildbeschreibung ein


3

Vielleicht hilft dies anderen Menschen, die auf das gleiche Problem stoßen.

Mein Setup: altes Gradle-Projekt (Version Gradle 2.12), das von einer anderen Person erstellt und mit dem Gradle-Import-Assistenten in STS (Eclipse Oxygen.2 (4.7.2)) importiert wurde.

Die Code-Vervollständigung hat auch nicht funktioniert (und ich habe immer noch hohle Js in den Java-Dateien), aber zumindest habe ich die Code-Vervollständigung zum Laufen gebracht, indem ich Folgendes getan habe:

  • Klicken Sie mit der rechten Maustaste auf den Projektordner> Eigenschaften> Gradle> Arbeitsbereichseinstellungen konfigurieren> Java> Editor> Inhaltsassistent> Erweitert
  • Aktivieren Sie "Java-Vorschläge im oberen Fenster.
  • 2x Übernehmen & Schließen

2

In meinem Fall war Intellisense in nur wenigen Klassen in einem Projekt verschwunden. Es stellte sich heraus, dass dies auf eine fehlende Bibliothek im Erstellungspfad zurückzuführen war (obwohl dies zuvor funktioniert hatte).

Überprüfen Sie daher auf jeden Fall alle Fehler oder Probleme in Eclipse und versuchen Sie herauszufinden, ob möglicherweise eine Bibliothek fehlt


2

Ich bin darauf gestoßen und es endete damit, dass ich die Datei mit dem Texteditor und nicht mit dem Java-Editor öffnete.

Ich wollte https://stackoverflow.com/users/607470/elroy-flynn kommentieren aber das Hinzufügen eines Kommentars funktioniert erst, nachdem ich eine Bewertung von 50 habe. nicht sicher, WTF das ist ...

Danke, Tom


Der Reputationsblock ist im Grunde nur so, dass die Leute Gründe haben, mehr zu bekommen, als nur mehr zu haben. Da dies auch ein Maß dafür ist, wie engagiert und respektiert Sie in der Community sind (dh als Reputation), erhalten Sie mehr Privilegien, wenn Sie mehr Reputation erhalten. Weitere Erklärungen zur Funktionsweise der Website finden Sie auf der Tour: stackoverflow.com/tour .
Amndeep7

Dies ist wirklich nur ein Kommentar. Die Antwort, die Sie erwähnen, behandelt bereits das Problem des Texteditors. Ich verstehe, wenn Sie es nicht löschen und das Karma verlieren wollen.
Noumenon

1

Für mich war das Problem ein Konflikt zwischen mehreren Versionen derselben Bibliothek. Der Eclipse-Assistent verwendete eine ältere Version als maven.

Ich musste in das .m2-Verzeichnis gehen und die unerwünschte lib-Version löschen + Eclipse neu starten.


1

Beim Bearbeiten einer Datei, die nicht zum Projektverzeichnis gehört, treten Probleme mit Eclipse Neon auf . Wenn ich dieselbe Datei in das Projektstammverzeichnis kopiere, nicht einmal in das src-Verzeichnis, funktioniert die Fertigstellung.

Wenn die Datei aus einem anderen Verzeichnis geöffnet wird, funktioniert nur die Vervollständigung für JRE. Das heißt zum Beispiel: java.Vervollständigt, aber junit.nicht.


1

Nur für den Fall, dass jemand an einen verzweifelten Punkt gelangt, an dem nichts funktioniert ... Es ist uns passiert, dass die Inhaltshilfe irgendwie geschrumpft ist, sodass kein Vorschlag angezeigt wurde. Nur "Drücken Sie Strg + Leertaste für Nicht-Java ..." war zu sehen. Es ging also nur darum, die Ecke der Inhaltshilfe zu ziehen, um das Popup zu vergrößern.

Ich weiß, peinlich. Ich hoffe es hilft.

Hinweis: Dies war ein Ubuntu-Server mit Xfce4, der Eclipse Oxygen verwendet.


1

Für diejenigen, die den neuesten 3-19 Eclipse Build verwenden:

Es ist mir gerade beim Upgrade von Oxygen auf die Eclipse-Version 3-19 passiert , daher gehe ich davon aus, dass die Funktion zur automatischen Vervollständigung während des Upgrade-Vorgangs nicht korrekt migriert wurde.

Die einzige Lösung, die für mich funktioniert hat, bestand darin, einen neuen Eclipse-Arbeitsbereich zu erstellen und die Projekte in diesen zu importieren. Es kann einige Minuten dauern, aber es lohnt sich - im Vergleich zu der Zeit, die für andere Lösungen aufgewendet wurde ...


Ja, ich kann die Java-Methoden nicht durchsuchen. Klicken Sie auf Durchsuchen / Öffnen. Die Deklaration funktioniert nicht. Und dies passiert ziemlich häufig, die Java-Klassendateien sind effektiv zu Textdateien geworden. Also lösche ich immer wieder den Arbeitsbereich und importiere das Maven-Projekt in einer Minute wieder in Aktion.
Signonsridhar


0

Ich bin seit dem Upgrade auf Eclipse 2019-09 auf dieses Problem gestoßen. Basierend auf einigen der obigen Vorschläge hat dies für mich funktioniert.

Ich musste zu Eclipse -> Einstellungen -> Java -> Editor -> Inhaltsassistent -> Erweitert gehen.

Java Editor / Content Assist Advanced

Ich fand heraus, dass ich die automatische Vervollständigung verwenden konnte, wenn ich einen der wichtigsten Bindungsvorschläge, Java Non-Type, Java, Java (aufgabenorientiert) oder Java Type-Vorschlag, aktivierte. Wenn ich sie alle eingeschaltet habe, hat nicht nur die automatische Vervollständigung funktioniert, sondern es wurden auch doppelte Methoden aufgelistet. Ich vermute, aber ich werde wahrscheinlich Java Type Proposals verwenden. Jede Klarstellung, was sich für diese vier Typen unterscheidet, wäre willkommen.


0

Wenn ich STS in Java Spring Boot-Projekten ausführe, funktioniert Folgendes für mich:

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.