Gibt es eine einfache Möglichkeit, eine Quelle in Eclipse anzuhängen?

130

Ich bin ein großer Fan der Art und Weise, wie Visual Studio Ihnen die Kommentardokumentation / Parameternamen beim Vervollständigen des von Ihnen geschriebenen Codes und AUCH des Codes, auf den Sie verweisen (verschiedene Bibliotheken / Assemblys), zur Verfügung stellt.

Gibt es eine einfache Möglichkeit, Inline-Javadoc- / Parameternamen in Eclipse abzurufen, wenn Code vollständig ausgeführt wird oder wenn Sie mit der Maus über Methoden fahren? Über Plugin? Über eine Einstellung? Es ist äußerst ärgerlich, viele Bibliotheken zu verwenden (wie es in Java häufig vorkommt) und dann auf die Website oder den lokalen Javadoc-Speicherort zu gehen, um Informationen nachzuschlagen, wenn Sie sie genau dort in den Quellgläsern haben!

Alex Argo
quelle
Gibt es eine andere Methode bei der Verwendung des maven m2e Plugins?
cmcginty
1
Siehe auch: Wie hängt man Javadoc oder Quellen an Jars im libs-Ordner an? wie es für Android geht, wo die unten stehende Lösung nicht funktioniert.
Blahdiblah

Antworten:

153

Kurze Antwort wäre ja.

Sie können die Quelle mithilfe der Eigenschaften für ein Projekt anhängen.

Gehen Sie zu Eigenschaften (für das Projekt) -> Java-Erstellungspfad -> Bibliotheken

Wählen Sie die Bibliothek aus, für die Sie source / javadoc anhängen möchten, und erweitern Sie sie. Daraufhin wird eine Liste wie folgt angezeigt:

Source Attachment: (none)
Javadoc location: (none)
Native library location: (none)
Access rules: (No restrictions)

Wählen Sie den Javadoc-Speicherort und klicken Sie dann auf der rechten Seite auf Bearbeiten. Von dort sollte es ganz einfach sein.

Viel Glück :)

Henry B.
quelle
3
Sie sollten natürlich beachten, dass Sie dasselbe auch im Abschnitt Quellanhang tun können, wenn Sie die tatsächliche Quelle haben, die Sie anhängen möchten. Dann erhalten Sie den Javadoc und können die tatsächliche Quelle direkt anzeigen, wenn Sie möchten.
ColinD
14
Ich würde dies die harte und schmerzhafte Art nennen, die Quelle anzuhängen. Sie müssen dies jedes Mal tun, wenn Sie die JAR-Datei in jedes Projekt aufnehmen, in dem Sie das JAR verwenden. Wenn Sie viele Gläser und viele Projekte haben, ist das nicht gut.
James Moore
3
@ JamesMoore, gibt es einen besseren Weg?
Felix
12
Viel zu viele Stimmen für diese Antwort! Die um 5 Jahre verbesserte Antwort ist der erwähnte Java Source Attacher, der wirklich "auf einfache Weise" passt.
Sevenforce
1
Was tun, wenn die Bibliothek "nicht modifizierbar" ist?
Henrique de Sousa
108

Bis gestern war ich festgefahren, Quell-Zips für Tonnen von Gläsern mühsam herunterzuladen und sie für jedes Projekt manuell anzuhängen. Dann hat mich ein Kollege auf The Java Source Attacher aufmerksam gemacht . Es macht das, was Eclipse tun sollte - ein Kontextmenü mit der rechten Maustaste mit der Aufschrift "Java-Quelle anhängen".

Geben Sie hier die Bildbeschreibung ein

Die Quelle wird automatisch für Sie heruntergeladen und angehängt. Ich habe nur ein paar Bibliotheken getroffen, von denen es nichts weiß, und wenn dies passiert, können Sie die URL wieder in die Community einbringen, damit niemand anderes ein Problem mit dieser Bibliothek hat.

tterrace
quelle
Es funktioniert, aber gibt es eine einfache Möglichkeit, von der Methode, die Sie untersuchen, zu dem Glas zu gelangen, aus dem es im Projektexplorer stammt?
Noumenon
Beachten Sie, dass die .jarDateien nicht in Ihrem Projektordner gespeichert sind, sodass Sie .classpathnicht portierbar sind, wenn Sie mit anderen zusammenarbeiten.
Stevoisiak
14

Ein einfacher Weg, dies zu tun, ist:

  1. Laden Sie die entsprechenden SRC-Dateien / Ordner herunter.

  2. Klicken Sie im Eclipse-Editor bei gedrückter Strg-Taste oder F3-Taste auf eine Methode / Klasse, für die Sie die Quelle benötigen. Es öffnet sich eine neue Registerkarte mit der Aufschrift "Keine angehängte Quelle gefunden".

  3. Klicken Sie auf die Schaltfläche "Quellen anhängen", klicken Sie auf die Schaltfläche "Quellordner anhängen" und navigieren Sie zum Speicherort des heruntergeladenen SRC-Ordners. Getan!

(ps: Die Tastenbeschriftungen können leicht variieren, aber das ist so ziemlich alles.)

NM
quelle
5

Ich habe festgestellt, dass Sie manchmal auf das Verzeichnis verweisen, von dem Sie annehmen, dass es korrekt ist, und dann wird immer noch angegeben, dass die Datei in der angehängten Quelle nicht gefunden werden kann.

Diesmal habe ich festgestellt, dass das letzte Pfadelement "src" war. Nur das Entfernen dieses Pfadelements (wodurch tatsächlich eine Ebene über dem tatsächlichen Pfad angezeigt wird, in dem sich der Ordner "org" oder "com" befindet) funktioniert auf magische Weise.

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

stolsvik
quelle
Ich habe das gleiche Problem: Die Quelle befindet sich in einem Verzeichnis namens "source" (wo sich "org" usw. befindet), aber ich kann Eclipse nicht dazu bringen, es zu verwenden, während Strg + Klicken auf einen Methodennamen. Stattdessen erhalte ich die Bytecode-Ansicht. Ich habe versucht, seinen Namen in "src" zu ändern, indem ich "org" als Verzeichnis oder das über "source" verwendete verwendet habe, aber nichts ändert sich ...
Matthieu
Ich glaube nicht, dass Eclipse davon ausgeht, dass dies srcTeil des Weges ist. Wählen Sie einfach den Ordner aus, der einen Ordner enthält, der nach dem Domänennamen der obersten Ebene des Pakets benannt ist.
H2ONaCl
@broiyan: Komisch, dass du das nicht glaubst, als ich gerade sagte, dass dies das ist, was ich empirisch und physisch erlebt habe ! :-)
stolsvik
5

Ja, es gibt einen einfachen Weg ... gehen Sie zu ... http://sourceforge.net/projects/jdk7src/ und laden Sie die Zip-Datei herunter. Dann hängen Sie dies an die Sonnenfinsternis. Geben Sie den Pfad an, unter den Sie die Zip-Datei in Eclipse heruntergeladen haben. Wir können dann die Quelle durchsuchen.

Ambika
quelle
5

1) Halten Sie die Strg-Taste gedrückt und klicken Sie mit der linken Maustaste auf die Methode, die Sie anzeigen möchten. Dann bringt Sie Eclipse zur Seite Quelle nicht gefunden.

2) Klicken Sie auf "Quelle anhängen" Geben Sie hier die Bildbeschreibung ein

3) Geben Sie hier die Bildbeschreibung ein

4) Navigieren Sie zu C: \ Programme \ Java \ jdk-9.0.1 \ lib \ src.zip

5) Klicken Sie auf OK. Geben Sie hier die Bildbeschreibung ein Jetzt sollte der Quellcode angezeigt werden.

Gen
quelle
4

Wenn Sie einem Klassenpfad eine JAR-Datei hinzufügen, können Sie diesem JAR ein Quellverzeichnis oder eine Zip- oder JAR-Datei hinzufügen. Erweitern Sie in den Java Build Path-Eigenschaften auf der Registerkarte Libraries den Eintrag für das JAR, und Sie sehen, dass es ein Element für den Quellanhang gibt. Wählen Sie dieses Element aus und klicken Sie auf die Schaltfläche Bearbeiten. Auf diese Weise können Sie den Ordner, das JAR oder die Zip-Datei auswählen, die die Quelle enthält.

Wenn Sie eine Klasse oder eine Methode in der JAR-Datei auswählen und STRG + KLICKEN (oder F3 drücken), gelangen Sie in die Bytecode-Ansicht, in der Sie den Quellcode anhängen können.

Wenn Sie diese Dinge tun, erhalten Sie alle Parameternamen sowie das vollständige Javadoc.

Wenn Sie nicht über die Quelle, sondern über das Javadoc verfügen, können Sie das Javadoc über die erste Methode anhängen. Es kann sogar auf eine externe URL verweisen, wenn Sie diese nicht heruntergeladen haben.

Matt
quelle
3
  1. Klicken Sie auf den JAVA-Code, den Sie sehen möchten. (Klicken Sie auf Liste, um List.java zu öffnen, wenn Sie den Quellcode für java.util.List überprüfen möchten.)
  2. Klicken Sie auf die Schaltfläche "Quelle anhängen".
  3. Sie werden aufgefordert, "den Speicherort (Ordner, JAR oder Zip) auszuwählen, der die Quelle für rt.jar enthält).
  4. Wählen Sie die Option "Externer Standort". Suchen Sie die Datei src.zip.
  5. Der Pfad für src.zip lautet: * \ Java \ jdk1.8.0_45 \ src.zip
BSM
quelle
2
  1. Fügen Sie Quelldateien in eine Zip-Datei ein (wie bei Java-Quellen).
  2. Gehen Sie zu Projekteigenschaften -> Bibliotheken
  3. Wählen Sie Quellanhang und klicken Sie auf "Bearbeiten".
  4. Klicken Sie in der Konfiguration des Quellanhangs auf "Variable".
  5. Klicken Sie unter "Variablenauswahl" auf "Neu".
  6. Geben Sie einen aussagekräftigen Namen ein und wählen Sie die in Schritt 1 erstellte Zip-Datei aus
Ranga
quelle
1

Eine andere Möglichkeit besteht darin, mit der rechten Maustaste auf Ihre JAR-Datei zu klicken, die sich unter (Ihr Projekt) -> Referenzierte Bibliotheken -> (Ihr JAR) befindet, und auf Eigenschaften zu klicken. Klicken Sie dann auf Java Source Attachment. Und dann im Speicherortpfad den Speicherort für Ihre Quell-JAR-Datei eingeben.

Dies ist nur ein weiterer Ansatz zum Anhängen Ihrer Quelldatei.

Nilesh Schneider
quelle
1

Wenn Sie Ihre Bibliotheken mit gradle erstellen, können Sie Quellen an die von Ihnen erstellten Jars anhängen, und Eclipse verwendet sie dann automatisch. Siehe die Antwort von @MichaelOryl Wie man ein Quellenglas mit Gradle baut .

Hier als Referenz kopiert:

jar {
    from sourceSets.main.allSource
}

Die gezeigte Lösung ist für die Verwendung mit dem Gradle Java Plugin vorgesehen. Der Kilometerstand kann variieren, wenn Sie dieses Plugin nicht verwenden.

Joshua Richardson
quelle
0

Ein weiterer Gedanke, um dies bei Verwendung eines automatisierten Builds zu vereinfachen:

Wenn Sie eine JAR -Datei für eines Ihrer Projekte erstellen, erstellen Sie auch eine JAR -Datei für Quelldateien:
project.jar
project-src.jar

Versuchen Sie Folgendes, anstatt in das Dialogfeld mit den Optionen für den Erstellungspfad zu wechseln, um jedem JAR eine Quellreferenz hinzuzufügen: Fügen Sie über das Dialogfeld eine Quellreferenz hinzu. Bearbeiten Sie Ihren .classpath und fügen Sie mit dem ersten JAR-Eintrag als Vorlage die Quell-JAR-Dateien zu jedem Ihrer anderen Jars hinzu.

Auf diese Weise können Sie die Navigationshilfen von Eclipse in vollem Umfang nutzen und gleichzeitig etwas Eigenständigeres zum Erstellen Ihrer Projekte verwenden.

Akrikos
quelle
0

Ich wollte nach einer Alternative zum Anhängen von Quellen an dieselbe JAR fragen, die in mehreren Projekten verwendet wird. Ursprünglich hatte ich gedacht, dass die einzige Alternative darin besteht, die JAR mit der enthaltenen Quelle neu zu erstellen, aber wenn Sie sich die Funktion "Benutzerbibliothek" ansehen, müssen Sie die JAR nicht mit der Quelle erstellen.

Dies ist eine Alternative, wenn Sie mehrere Projekte (verwandt oder nicht) haben, die auf dieselbe JAR verweisen. Erstellen Sie für jede JAR eine "Benutzerbibliothek" und hängen Sie die Quelle an diese an. Wenn Sie das nächste Mal eine bestimmte JAR benötigen, fügen Sie anstelle von "JARs hinzufügen ..." oder "Externe JARs hinzufügen ..." die zuvor erstellte "Benutzerbibliothek" hinzu.

Sie müssten die Quelle nur EINMAL pro JAR anhängen und können sie für eine beliebige Anzahl von Projekten wiederverwenden.

nevets1219
quelle
0

Für diejenigen, die Eclipse-Plugins schreiben und die Quelle einschließen möchten ... gibt es in der Funktion ExportWizard eine Option zum Einschließen der Quelle: Geben Sie hier die Bildbeschreibung ein

Stefan
quelle
0

Klicken Sie einfach auf Quelle anhängen und wählen Sie den Ordnerpfad aus. Der Name entspricht dem Ordnernamen (in meinem Fall). Denken Sie daran, dass Sie den Pfad zum Basisverzeichnis des Projektordners mit "\" am Suffix ex D: \ MyProject \ auswählen müssen

Gaurav Deshmukh
quelle
-2

Es mag wie ein Overkill erscheinen, aber wenn Sie maven verwenden und source einschließen, generiert das mvn eclipse-Plugin die gesamte Quellkonfiguration, die erforderlich ist, um Ihnen die gesamte Inline-Dokumentation zu geben, die Sie anfordern können.

Alex Argo
quelle
1
Aber zusammen damit ist ein Vorschlaghammer für Ihr normales Eclipse-Build-System erforderlich, der alles zerstört, was früher funktioniert hat.
James Moore