Die Symptome beschreiben perfekt den Fall, in dem der gefundenen Klasse keine Quelle zugeordnet (oder zugewiesen) ist.
- Sie können die Quellen für JDK-Klassen unter Einstellungen> Java> Installierte JRE zuordnen . Wenn JRE (nicht JDK) als zu verwendende Standard-JRE erkannt wird, haben Ihre JDK-Klassen keine angehängten Quellen. Beachten Sie, dass nicht alle JDK-Klassen Quellen bereitgestellt haben. Einige von ihnen werden nur in binärer Form verteilt.
- Für manuell hinzugefügte Klassen aus dem Erstellungspfad des Projekts müssen Sie die zugehörige Quelle manuell anhängen. Die Quelle kann sich in einer Zip- oder JAR-Datei, im Arbeitsbereich oder im Dateisystem befinden. Eclipse scannt die Zip-Datei, sodass sich Ihre Quellen beispielsweise nicht im Stammverzeichnis der Archivdatei befinden müssen.
- Klassen aus Abhängigkeiten, die von anderen Plugins (Maven, PDE usw.) stammen. In diesem Fall ist es Sache des Plugins, wie die Quelle bereitgestellt wird.
- Für PDE muss jedes Plugin über ein entsprechendes XXX.source- Bundle verfügen , das die Quelle des Plugins enthält. Weitere Informationen finden Sie hier und hier .
- m2eclipse kann Quellen und Javadocs für Maven-Abhängigkeiten abrufen, sofern diese verfügbar sind. Diese Funktion sollte in den m2eclipse-Einstellungen aktiviert sein (die Option wurde als " Quelle und Javadocs herunterladen " bezeichnet.
- Für andere Plugins müssen Sie deren Dokumentation konsultieren
- Klassen, die aus Ihrem Projekt geladen werden, werden automatisch mit den Quellen aus dem Projekt abgeglichen.
Aber was ist, wenn Eclipse immer noch vorschlägt, dass Sie eine Quelle anhängen, auch wenn ich meine Klassen und ihre Quellen korrekt festgelegt habe:
Dies bedeutet fast immer, dass Eclipse die Klasse von einem anderen Ort als erwartet findet. Überprüfen Sie Ihren Quellensuchpfad, um festzustellen, wo möglicherweise die falsche Klasse vorhanden ist. Aktualisieren Sie den Pfad entsprechend Ihren Ergebnissen.
Eclipse findet überhaupt nichts, wenn der Haltepunkt erreicht wird:
Dies geschieht, wenn Sie als Quellensuchpfad nicht die Klasse enthalten, die derzeit zur Laufzeit geladen wird. Selbst wenn sich die Klasse im Arbeitsbereich befindet, kann sie für die Startkonfiguration unsichtbar sein, da Eclipse den Quellensuchpfad genau befolgt und nur die Abhängigkeiten des Projekts anfügt, das derzeit debuggt wird.
Eine Ausnahme bilden die Debugging-Bundles in PDE . In diesem Fall findet Eclipse die Klasse automatisch im Arbeitsbereich, da die Laufzeit aus mehreren Projekten besteht, die keine Abhängigkeiten voneinander deklarieren müssen, auch wenn sie nicht im Quellensuchpfad verfügbar ist.
Ich kann die Variablen nicht sehen, wenn ich einen Haltepunkt erreiche oder nur die Quelle öffne, aber die Haltepunktlinie nicht auswähle:
Dies bedeutet, dass zur Laufzeit entweder die JVM oder die Klassen selbst nicht über die erforderlichen Debug-Informationen verfügen. Jedes Mal, wenn Klassen kompiliert werden, können Debug-Informationen angehängt werden. Um den Speicherplatz der Klassen zu verringern, werden diese Informationen manchmal weggelassen, was das Debuggen eines solchen Codes zu einem Problem macht. Ihre einzige Chance besteht darin, zu versuchen, mit aktiviertem Debug neu zu kompilieren.
Der Eclipse Source Viewer zeigt andere Zeilen als die tatsächlich ausgeführten:
Es kann manchmal zeigen, dass auch der leere Raum ausgeführt wird. Dies bedeutet, dass Ihre Quellen nicht mit Ihrer Laufzeitversion der Klassen übereinstimmen. Auch wenn Sie der Meinung sind, dass dies nicht möglich ist, stellen Sie sicher, dass Sie die richtigen Quellen einrichten. Oder Ihre Laufzeit entspricht Ihren letzten Änderungen, je nachdem, was Sie versuchen.