Beim Debuggen einer Java-App in Eclipse wird in zwei Fällen der Fehler " Quelle nicht gefunden " angezeigt:
- Aufrufen einer Datei in einem anderen Projekt, das bereits importiert wurde
- Aufrufen einer Datei in einem installierten Maven-Repository
Die Dateien sind vorhanden, aber Eclipse tritt nicht in sie ein, sondern zeigt eine Schaltfläche zum " Anhängen der Quelle " an.
Ich habe versucht anzuhängen (was einen Dialog zum Definieren einer Variablen geöffnet hat?!) Und Eclipse ist zur Datei gesprungen, aber der Debugger konnte dort keine Variablen überprüfen. Auch das manuelle Anhängen der Quelle für jede Abhängigkeit ist nicht praktikabel, da in meinem Fall Tausende von Abhängigkeitsdateien vorhanden sind.
Ich bin neu in Eclipse \ Java, daher würde eine Erklärung, warum dies geschieht und wie dies behoben werden kann, sehr helfen!
Nur 3 Schritte zur Konfiguration der Eclipse-IDE:
Quellensuche bearbeiten Wählen Sie den Befehl Quellensuche bearbeiten ... [Quellensuche bearbeiten], um das Dialogfeld Quellpfad zu öffnen, in dem Sie Änderungen am Quellensuchpfad des ausgewählten Debug-Ziels vornehmen können.
WICHTIG Starten Sie Eclipse nach diesem letzten Schritt neu.
quelle
Die Symptome beschreiben perfekt den Fall, in dem der gefundenen Klasse keine Quelle zugeordnet (oder zugewiesen) ist.
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.
quelle
Von http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source
"Wenn Sie im Debug-Modus ausgeführt werden, klicken Sie mit der rechten Maustaste auf den laufenden Thread (auf der Registerkarte" Threads ") und wählen Sie" Quellensuche bearbeiten ". Zu diesem Zeitpunkt sollten Sie in der Lage sein, das erforderliche Projekt / JAR hinzuzufügen, das Ihren Quellcode enthält."
Ich habe mein aktuelles Projekt auf diese Weise hinzugefügt und es hat mein Problem gelöst
quelle
Ich hatte ein ähnliches Problem mit meinem Eclipse Maven-Projekt. Ich habe ziemlich lange mit diesem Problem gekämpft, dann habe ich versucht, das Projekt mit neu aufzubauen
und es hat geholfen.
Hinweis: Die Verwendung dieses Ansatzes verwirrt das m2e-Plugin, da die beiden Ansätze sehr unterschiedlich sind. m2e fügt Ihrem Projekt einen virtuellen Knoten mit dem Namen "Maven-Abhängigkeiten" hinzu und fordert Maven auf, dort alle Abhängigkeiten hinzuzufügen.
mvn eclipse:eclipse
Auf der anderen Seite werden viele einzelne Einträge in der Datei erstellt.classpath
. Eclipse behandelt sie so, als hätten Sie Ihrem Projekt manuell JARs hinzugefügt.Dieser Ansatz wird nicht empfohlen, es sei denn, Sie wissen, wie der Klassenpfad in Eclipse funktioniert.
quelle
mvn eclipse:eclipse
Fügen Sie dem Java-Erstellungspfad die Projektabhängigkeit hinzu, damit dies funktioniert. Außerdem fügt das m2eclipse-Plugin die Projektabhängigkeit nur in "Maven-Abhängigkeiten" hinzu, die auf der Registerkarte "Bibliotheken" angezeigt werden, und der Debugger kann sie nicht finden.Entfernen Sie die vorhandene Debug-Konfiguration und erstellen Sie eine neue. Das sollte das Problem lösen.
quelle
Ich hatte das gleiche Problem, ich folgte den folgenden Schritten.
Window=> Preferences=> Java=> Installed JREs,
Sie sehen, im obigen Bildschirm
Jre1.8.0_12
ist ausgewählt.Wählen Sie die verwendete JRE aus und klicken Sie auf Edit. Jetzt sollten Sie den folgenden Bildschirm sehen.
Klicken Sie auf das Verzeichnis, suchen Sie nach Jdk. Es sollte wie folgt aussehen.
Klicken Sie auf OK und fertig
quelle
java.
java.lang.String
Ich hatte das Problem, dass meine Eclipse den Quellcode meines Projekts nicht debuggte. Ich habe eine leere Seite mit "Quellcode-Knoten gefunden" erhalten.
Bitte klicken Sie auf die Schaltfläche Quellcode anhängen. Löschen Sie dann den "Standard" -Ordner, klicken Sie auf "Hinzufügen", gehen Sie zu Ihrem Projektspeicherort und hängen Sie ihn an. Das hat bei mir funktioniert
quelle
Offensichtlich weiß Eclipse nicht automatisch, wo sich der Quellcode für die abhängigen Gläser befindet. Es ist nicht klar, warum der Debugger Variablen nicht überprüfen konnte, nachdem die Quelle angehängt wurde. Eine Möglichkeit ist eine falsche / inkompatible Quelle.
Angenommen, Sie haben ein Maven-Projekt und die Quellen der Abhängigkeiten sind heruntergeladen und im lokalen Repository verfügbar. Möglicherweise möchten Sie m2eclipse , das Maven-Eclipse-Plugin , installieren und prüfen , ob dies zur Behebung Ihres Problems beiträgt.
quelle
In meinem Fall hat es auch nach dem Bearbeiten der Quellensuche und dem Hinzufügen eines Projekts nicht funktioniert. Ich habe den Erstellungspfad des Projekts konfiguriert.
Danach habe ich JRE System Library ausgewählt und es hat funktioniert.
quelle
Möglicherweise verfügen Sie über den Quellcode einer Abhängigkeit, auf die Eclipse zugreifen kann. Eclipse kennt jedoch keinen Quellcode für Code, der dynamisch geladen wird. ZB durch Maven.
Im Falle von Maven empfehle ich die Verwendung des Run-Jetty-Run-Plugins:
http://code.google.com/p/run-jetty-run/
Um dieses Problem zu umgehen, können Sie mit dem Debugger auch eine Verbindung zu einer laufenden JVM herstellen, und Sie sehen den Code. Alternativ können Sie das Dynamic Source Lookup-Plugin für Eclipse von hier aus verwenden:
https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup
Leider hat es mir nicht geholfen, da es Probleme mit Windows-Pfaden mit Leerzeichen gibt.
Ich habe eine Verbesserungsanfrage für Eclipse Bugzilla ausgefüllt. Wenn Sie der Meinung sind, dass dieses Problem "Quelle nicht gefunden" für immer verschwinden sollte, stimmen Sie hier ab:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=384065
Vielen Dank!
Sasa
quelle
In meinem Fall in "Quelle anhängen" habe ich das andere Maven-Projektverzeichnis im Bereich "Konfiguration von Quellanhängen" hinzugefügt. Das Hinzufügen der neuesten Version jar aus dem m2-Repository funktioniert nicht. Alle Klassen aus dem anderen Maven-Projekt konnten nicht geöffnet werden.
Hier war Test mein anderes Maven-Projekt, das alle Java-Quellen enthielt.
quelle
Klicken Sie auf -> Quellensuchpfad bearbeiten
danach
Klicken Sie auf -> Hinzufügen, wählen Sie schließlich Java-Projekt und Projektpfad aus.
Quelle: https://www.youtube.com/watch?v=IGIKPY6q1Qw
quelle
Ich hatte das gleiche Problem. In meinem Fall habe ich Window-Preferences-Java-Debug deaktiviert [Ausführung bei nicht erfassten Ausnahmen anhalten]. Dann zeigte mir die Konsole den richtigen Fehler: Mein MySQL-Benutzer hatte keine Berechtigungen für den Zugriff auf die Datenbank. Nach diesem Thema.
quelle
Info: Dies ist eine mögliche Lösung, wenn Sie maven (pom.xml) für einige Projekte verwenden.
Wenn Sie mit maven arbeiten, stellen Sie sicher, welche Version Sie in der entsprechenden pom.xml verwenden (z. B. 1.0.1-SNAPSHOT). Möglicherweise ist Ihr Code auf dem neuesten Stand, aber Ihre pom.xml-Abhängigkeiten übernehmen weiterhin die alten JARs / Snapshots (mit dem alten Code).
Das Problem finden:
quelle
Wenn Sie sich in Eclipse oder STS befinden, installieren und verwenden Sie bitte GC (GrepCode Plugin). Manchmal müssen Sie die ZIP-Quelldatei nicht an Ihren Projektpfad anhängen, damit GrepCode für Sie einwandfrei funktioniert.
quelle
Ich hatte ein verwandtes Problem im Zusammenhang mit dem Debuggen von Glassfish-Servern in Eclipse. Dies wurde durch Laden des Quellcodes aus einem anderen Repository (Wechsel von SVN zu GitHub) erreicht. Dabei wurden vom Glassfish-Server die falsch kompilierten Klassen verwendet, sodass die Quelle und die Laufzeit nicht mit den auf leeren Zeilen angezeigten Haltepunkten übereinstimmen.
Um dies zu beheben, benennen Sie den obersten Ordner des Klassenverzeichnisses um oder löschen Sie ihn. Glassfish erstellt den gesamten Klassenverzeichnisbaum neu, einschließlich der Aktualisierung der Klassendateien mit der korrekt kompilierten Version.
Das Klassenverzeichnis befindet sich in: / workspace / glassfish3122eclipsedefaultdomain / eclipseApps / <Ihre Webanwendung> / WEB-INF / classes
quelle
In meinem Fall mit Tomcat-Projekten habe ich das Projekt hier überprüft: Fenster - Einstellungen - Tomcat - Quellpfad - Java-Projekte zum Quellpfad hinzufügen
quelle
In meinem Fall stimmte die Maven-Version des anderen referenzierten Projekts nicht mit der Version des Testprojekts überein. Sobald sie gleich waren, verschwand das Problem.
quelle
Klicken Sie im Debug-Modus auf Quellensuche bearbeiten, nachdem der Thread angehalten wurde. Zu diesem Zeitpunkt sollten wir in der Lage sein, das erforderliche Projekt / JAR hinzuzufügen, das Ihren Quellcode enthält. Nachdem ich mein aktuelles Projekt auf diese Weise hinzugefügt hatte, löste es mein Problem. Vielen Dank
quelle
Wenn Sie Quellcode durch automatisches Herunterladen an eine JAR anhängen möchten, verwenden Sie dieses Eclipse-Plugin Java Source Attacher
quelle
Ich hatte dieses Problem, als ich an Java-Code arbeitete, um eine Excel-Datei mit einem Datensatz zu verarbeiten und sie dann in eine CSV-Datei zu konvertieren. Ich habe versucht, Antworten auf diesen Beitrag zu finden, aber sie funktionierten nicht. Das Problem waren die JAR-Dateien selbst. Nach dem Herunterladen der benötigten JAR-Dateien nacheinander (ältere Versionen) und dem Hinzufügen zu meinem Projekt verschwand der Fehler "Quelle nicht gefunden". Vielleicht können Sie Ihre JAR-Dateien überprüfen. hoffe das würde helfen.
quelle
das hat bei mir funktioniert
Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Bereitstellungsassembly -> Fügen Sie Ihre JAR hinzu
quelle
Gehen Sie in Eclipse zur Debug-Konfiguration und verwenden Sie das folgende Ziel, um Ihre Anwendung auszuführen.
-Dmaven.surefire.debug
z.B
-Dmaven.surefire.debug exec: java
quelle
Hier ist, was für mich funktioniert hat. Ich habe jede mögliche Lösung für StackOverflow ausprobiert, die es gab. Ich habe versucht, meinen Quellspeicherort im Debug-Menü zu ändern, ich habe das m2e Eclipse-Plugin installiert, ich habe von eingebettetem Maven gewechselt und ich habe den Run-Jetty-Run installiert und nichts hat funktioniert. Jetzt möchte ich darauf hinweisen, dass ich nicht versucht habe, den Quellcode einer externen Person anzuzeigen. Ich wollte nur meinen EIGENEN Code anzeigen, aber jedes Mal, wenn ich in meine Methoden "eingetreten" bin, die ich in MEINEM Projekt geschrieben habe, habe ich den Fehler "Quelle jetzt gefunden".
Nachdem ich schließlich einen Experten gefragt hatte, war mein Problem, dass Eclipse als erstes einen ClassLoader aufrief, den Sie im Debug-Stack sehen können. Alles was ich tun musste war F6 (Schritt über) und dann brachte es mich zurück zu meinem ursprünglichen Anruf und dann F5 (Schritt hinein). Und da war mein Code. Seufz ... so eine einfache Lösung, aber eine Stunde verschwendet.
quelle
Für Anfänger,
Es besteht die Möglichkeit, dass die JAR-Datei Teil des Projekts ist, das Sie noch nicht in den Eclipse-Arbeitsbereich aufgenommen haben.
Dazu müssen Sie den Projektnamen der JAR-Datei kennen. Nehmen wir zum Beispiel, seine abc -18.0.0-SNAPSHOT.jar, bedeutet dies , dass das Projekt , das Sie sollen in Ihrem Arbeitsbereich enthalten ist abc .
quelle
Ich hatte das gleiche Problem mit Eclipse 2019-03 (4.11.0) und konnte dieses Problem nur lösen, indem ich das Debuggen über Remote-Debugging durchführte, anstatt es direkt im Debug-Modus zu starten.
quelle
Quelle anhängen -> Hinzufügen -> Externes Archiv -> JAR auswählen -> Öffnen -> Fertig
Der Haken ist, nach dem Quellglas zu suchen und dieses Glas anzubringen.
Zum Beispiel endet das Glas mit "-sources" Stax2-api-3.4.1-sources
quelle
Wenn Sie versuchen, Ihr Maven-Java-Projekt zu debuggen, und Eclipse Ihre Quelle nicht finden kann, versuchen Sie eine davon.
Versuchen Sie maven-> update und debuggen Sie dann
Versuchen Sie nun das Debuggen
quelle
Versuchen Sie in Eclipse Photon, "Fenster-> Einstellungen-> Java-> Debug-> Erweiterte Quellensuche verwenden" zu deaktivieren.
Bearbeiten: In dieser Version von Eclipse gibt es einen verwandten Fehler, der beim Debuggen von Java-Anwendungen zu der Meldung "Quelle nicht gefunden" führt. Weitere Informationen finden Sie unter Fehlerbericht bugs.eclipse.org/bugs/show_bug.cgi?id=537699
quelle