2008-10-10 5 views
5

In Eclipse (Ganymed) Ich debugge etwas Code, der Apache Commons HttpClient verwendet und möchte in den HttpClient-Code einsteigen. Ich habe den Quellcode heruntergeladen und versucht, ihn wie gewohnt anzuhängen (klicken Sie bei gedrückter STRG-Taste auf den Methodennamen und verwenden Sie die Schaltfläche Quelle anhängen). Ich habe versucht, sowohl als externe Datei und externen Ordner ohne Erfolg anzuhängen. Ich habe Source zuvor ohne Probleme angefügt und kann derzeit erfolgreich in den Hibernate-Quellcode eintreten.Problem in Eclipse anhängen

Ich habe sogar versucht, die Datei .classpath direkt zu bearbeiten, um Quellpfad manuell hinzuzufügen. Immer noch kein Glück. Das Aktualisieren des Projekts, das Durchführen eines sauberen Builds, das Schließen und erneute Öffnen von Eclipse lösen das Problem nicht. Frustrierend liefert Eclipse keine Fehlermeldung; Es verbindet einfach nicht die Quelle.

Hier sind die Einträge in .claspath:

<!-- Hibernate. Works --> 
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/hibernate.jar" sourcepath="D:/Data/Download/hibernate-3.2.2.ga/hibernate-3.2/src"/> 

<!-- Commons HttpClient. Will not attach --> 
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/commons-httpclient.jar" sourcepath="D:/Data/Download/commons-httpclient-3.1/src/java"/> 

Ich habe versucht, den Pfad zu D zu ändern: /Data/Download/commons-httpclient-3.1/src und das funktioniert auch nicht.

Die Verzeichnisstruktur ist:

D 
    Data 
    Download 
     commons-httpclient-3.1 
     src 
      java 
      org 
       apache 
       commons 
        httpclient 
        AutoCloseInputStream.java 
        ... (and so forth) 
+0

Können Sie die .classpath-Einträge so formatieren, dass sie sichtbar sind (nach Markup)? –

Antwort

6

Versuchen Sie, es direkt auf ein Verzeichnis zu richten, das das Paket der obersten Ebene enthält, "D: /Data/Download/common-httpclient-3.1/src/java". Was für mich funktionierte, war das Erstellen einer neuen src-Zip-Datei, die den Ordner "org" und alles darunter enthält.

Hier ist mein .classpath Eintrag, (was für mich funktioniert), falls es hilft:

<classpathentry kind="lib" path="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1.jar" sourcepath="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1-src.zip"/> 
2

Versuchen Sie, die src.zip anstelle des entpackten src Befestigung?

+0

Versuchte das zuerst. Vielen Dank. –

+0

Wie seltsam! Viel Glück. – JeeBee

+0

Danke, ich denke, ich könnte versuchen, das Projekt in Europa zu öffnen. –

2

Versuchen Sie, es zum Quellpfad Ihrer Startkonfiguration hinzuzufügen.

1

Das Hinzufügen von Quellen ist nicht erforderlich, um in eine Bibliothek auf dem Klassenpfad zu gelangen. Diese Bibliothek muss auch mit Debug-Symbolen kompiliert werden. Dies ist normalerweise kein Problem, da die meisten Java-Bibliotheken auf diese Weise kompiliert und verteilt werden, aber wie Sie festgestellt haben, sind einige von ihnen nicht.

Es ist interessant zu beachten, dass Sie tatsächlich in externe Bibliotheken auch ohne die Quelle angeschlossen werden können, Sie können nur die zeilenweisen Quellen nicht sehen (alle Debug-Informationen funktionieren noch).

Sie könnten dieses Problem "beheben", indem Sie eine benutzerdefinierte Version von Commons HttpClient kompilieren (nicht zu schwierig), oder überspringen Sie einfach die ganze "Schritt in die Bibliothek" Idee. Als allgemeine Entwicklungspraxis wird das Eindringen in Bibliotheken von Drittanbietern selten nützliche Informationen liefern. Ich habe es vielleicht ein oder zweimal in den letzten zehn Jahren getan, keine Zeit, in der es mich tatsächlich näher an das Dilemma herangeführt hätte.

4

ich gefunden habe, dass manchmal, Sie auf das Verzeichnis zeigen Sie übernehmen hatte, war richtig, und es dann sagt immer noch, dass es die Datei in der angehängten Quelle blah blah nicht finden kann.

In diesen Zeiten habe ich festgestellt, dass das letzte Pfadelement "src" war. Das Entfernen dieses Pfadelements (also tatsächlich eine Ebene über dem tatsächlichen Pfad, wo sich der Ordner "org" oder "com" befindet) bewirkt, dass es funktioniert.

Irgendwie scheint Eclipse dieses Pfadelement "src" zu enthalten, wenn es vorhanden ist, und wenn Sie es dann im Quellpfad enthalten haben, erstickt Eclipse. Oder etwas ähnliches.

1

Ich denke, Problem im Raum (oder lokalisierte) Simbols im Pfad zum Quellarchiv. Versuche es mit einem einfachen Pfad an einen anderen Ort zu verschieben.