Bitte lassen Sie mich wissen, wie ich eine JAR-Datei mit Quellcode in Eclipse debuggen kann.
Als ich versucht habe, es zu debuggen, ist die Implementierung wie gewünscht abgeschlossen, aber die Steuerung hat die Haltepunkte nie erreicht.
oder wenn Sie mehr Schritte machen möchten:
Sie versuchen dieses:
Öffnen Sie zuerst die JAR-Datei mit JD (Java Decompiler), dann klicken Sie auf Datei - & gt; Speichern Sie JAR-Quellen und es wird eine ZIP-Datei, die die Java-Quelldateien enthält. Dann können Sie diese Quell-Zip-Datei in der Debug-Konfiguration hinzufügen, indem Sie Quelle hinzufügen verwenden. Es wird dann sicher funktionieren.
Ich habe mich auch beim Debuggen der JAR-Dateiklassen mit dem ähnlichen Problem konfrontiert. Aber nach dem obigen Vorgang wurde das Problem gelöst.
Ich habe das schon oft gemacht und es funktioniert gut für mich. Stellen Sie sicher, dass Sie die Debug-Punkte an der richtigen Position platziert haben. Kann sein, dass aufgrund bestimmter Bedingungen Code zu diesem Zeitpunkt unerreichbar wird, wird der Debug-Punkt nicht wirksam. Plazieren Sie den Debug-Punkt beim Aufrufen der Anweisung der Methode bedeutet, dass Sie die Methode der Jar-Klasse aufgerufen haben. Wenn die Kontrolle dort ankommt, dann press F5
, um die Methode in der Klasse der JAR-Datei einzugeben. Wenn die Steuerung dort nicht ankommt, bedeutet das, dass Sie einige Bedingungen im Code haben, die verhindern, dass diese Methode aufgerufen wird und Sie daher nicht zu Ihrem Unterbrechungspunkt in der Methode gelangen können.
Verwenden Sie den folgenden Befehl, um Ihr jar zu starten:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y -jar [JAR NAME]
Es sollte etwas wie sagen:
Listening for transport dt_socket at address : 8000
Erstellen Sie in Eclipse eine Debugkonfiguration für Remote Java Application und fügen Sie die Module von jar hinzu.
"Die Problemumgehung besteht darin, auf die PDE-Zielplattform" Preference page "zu gehen und sie zu deaktivieren alle externen Plug-Ins. Sie verursachen das Problem, weil das Modell Synchronizer, der das Auftreten von "Zwillingen" verhindern soll, funktioniert nicht richtig. "
Referenzlink Ссылка Kommentar # 10.
Die obige Problemumgehung hat bei mir gut funktioniert.