Existe-t-il un moyen simple d'attacher une source dans Eclipse?

130

Je suis un grand fan de la façon dont Visual Studio vous donnera la documentation des commentaires / les noms de paramètres lorsque vous complétez le code que vous avez écrit et AUSSI le code que vous référencez (diverses bibliothèques / assemblages).

Existe-t-il un moyen facile d'obtenir des noms de javadoc / paramètres en ligne dans Eclipse lorsque vous complétez du code ou survolez des méthodes? Via plugin? Via un réglage? Il est extrêmement ennuyeux d'utiliser beaucoup de bibliothèques (comme cela arrive souvent en Java) et de devoir ensuite se rendre sur le site Web ou à l'emplacement javadoc local pour rechercher des informations lorsque vous les avez dans les jars sources!

Alex Argo
la source
Existe-t-il une méthode différente lors de l'utilisation du plugin maven m2e?
cmcginty
1
Voir aussi: Comment attacher javadoc ou des sources aux jars dans le dossier libs? pour savoir comment le faire pour Android où la solution ci-dessous ne fonctionne pas.
blahdiblah

Réponses:

153

Une réponse courte serait oui.

Vous pouvez attacher une source à l'aide des propriétés d'un projet.

Allez dans Propriétés (pour le projet) -> Chemin de construction Java -> Bibliothèques

Sélectionnez la bibliothèque pour laquelle vous souhaitez attacher la source / javadoc, puis développez-la, vous verrez une liste comme celle-ci:

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

Sélectionnez l'emplacement Javadoc, puis cliquez sur Modifier sur le côté droit. Cela devrait être assez simple à partir de là.

Bonne chance :)

Henry B
la source
3
Vous devez bien sûr noter que vous pouvez également faire de même avec la section Pièce jointe à la source si vous disposez de la source réelle que vous souhaitez joindre. Ensuite, vous obtenez le Javadoc et vous pouvez consulter la source réelle directement si vous le souhaitez.
ColinD le
14
J'appellerais cela la manière difficile et douloureuse d'attacher la source. Vous devez le faire chaque fois que vous incluez le fichier jar dans chaque projet que vous utilisez le jar. Quand vous avez beaucoup de pots et beaucoup de projets, ce n'est pas bon.
James Moore
3
@JamesMoore, y a-t-il un meilleur moyen?
Felix
12
Beaucoup trop de votes pour cette réponse! La réponse améliorée de 5 ans est l' attacheur de source java mentionné qui convient vraiment "d'une manière facile".
sevenforce
1
Que faire quand nous avons "non modifiable" sur la lib?
Henrique de Sousa
108

Jusqu'à hier, j'étais obligé de télécharger minutieusement des zips sources pour des tonnes de pots et de les attacher manuellement pour chaque projet. Puis un collègue m'a orienté vers The Java Source Attacher . Il fait ce qu'éclipse devrait faire - un menu contextuel de clic droit qui dit «Joindre la source Java».

entrez la description de l'image ici

Il télécharge automatiquement la source pour vous et la joint. Je n'ai touché que quelques bibliothèques dont il ne connaît pas l'existence et lorsque cela se produit, cela vous permet de renvoyer l'URL à la communauté afin que personne d'autre n'ait de problème avec cette bibliothèque.

tterrace
la source
Cela fonctionne, mais y a-t-il un moyen simple de passer de la méthode que vous inspectez au pot dont il provient dans Project Explorer?
Noumenon
Notez que les .jarfichiers ne sont pas enregistrés dans votre dossier de projet, vous .classpathne serez donc pas portable si vous collaborez avec d'autres.
Stevoisiak
14

Une manière simple de procéder est:

  1. Téléchargez les fichiers / dossiers SRC respectifs.

  2. Dans l'éditeur d'éclipse, Ctrl + clic ou F3 sur une méthode / classe dont vous avez besoin de la source. Un nouvel onglet s'ouvre qui dit "Aucune source attachée trouvée".

  3. Cliquez sur le bouton "Joindre les sources", cliquez sur le bouton "Joindre le dossier source", accédez à l'emplacement du dossier SRC téléchargé. Terminé!

(ps: les étiquettes des boutons peuvent varier légèrement, mais c'est à peu près tout.)

NM
la source
5

J'ai trouvé que parfois, vous pointez vers le répertoire que vous supposeriez être correct, puis il indique toujours qu'il ne peut pas trouver le fichier dans la source jointe bla bla.

Ces fois, j'ai réalisé que le dernier élément de chemin était "src". Le simple fait de supprimer cet élément de chemin (pointant donc effectivement un niveau au-dessus du chemin réel où se trouve le dossier "org" ou "com") le fait fonctionner comme par magie.

D'une manière ou d'une autre, Eclipse semble impliquer cet élément de chemin "src" s'il est présent, et si vous l'avez ensuite inclus dans le chemin source, Eclipse s'étouffe. Ou quelque chose comme ça.

Stolsvik
la source
J'ai le même problème: la source est dans un répertoire appelé "source" (où se trouvent "org", etc.) mais je ne peux pas faire en sorte qu'Eclipse l'utilise pendant que Ctrl + clic sur un nom de méthode. Au lieu de cela, j'obtiens la vue de code d'octet. J'ai essayé de changer son nom en "src", en utilisant "org" comme répertoire, ou celui ci-dessus "source" mais rien ne change ...
Matthieu
Je ne pense pas qu'Eclipse suppose qu'elle srcfait partie du chemin. Choisissez simplement le dossier qui contient un dossier nommé d'après le nom de domaine de premier niveau du package.
H2ONaCl
@broiyan: C'est drôle que vous ne croyiez pas ça, quand je viens de dire que c'est ce que j'ai expérimenté empiriquement, physiquement ! :-)
stolsvik
5

oui, il existe un moyen simple ... allez sur ... http://sourceforge.net/projects/jdk7src/ et téléchargez le fichier zip. Ensuite, attachez-le à l'éclipse. Donnez le chemin où vous avez téléchargé le fichier zip dans eclipse. Nous pouvons ensuite parcourir la source.

Ambika
la source
5

1) Maintenez Control + clic gauche sur la méthode que vous souhaitez voir. Ensuite, Eclipse vous amènera à la page Source non trouvée.

2) Cliquez sur "Joindre la source" entrez la description de l'image ici

3) entrez la description de l'image ici

4) Accédez à C: \ Program Files \ Java \ jdk-9.0.1 \ lib \ src.zip

5) Cliquez sur OK entrez la description de l'image ici . Vous devriez maintenant voir le code source.

Gène
la source
4

Lorsque vous ajoutez un fichier jar à un chemin de classe, vous pouvez attacher un répertoire source ou un fichier zip ou jar à ce fichier jar. Dans les propriétés du chemin de construction Java, sous l'onglet Bibliothèques, développez l'entrée du fichier jar et vous verrez qu'il existe un élément pour la pièce jointe source. Sélectionnez cet élément, puis cliquez sur le bouton Modifier. Cela vous permet de sélectionner le dossier, le fichier jar ou le zip contenant la source.

De plus, si vous sélectionnez une classe ou une méthode dans le fichier jar et CTRL + CLIC dessus (ou appuyez sur F3), vous entrerez dans la vue bytecode qui a une option pour attacher le code source.

Faire ces choses vous donnera tous les noms de paramètres ainsi que le javadoc complet.

Si vous n'avez pas la source mais avez le javadoc, vous pouvez attacher le javadoc via la première méthode. Il peut même référencer une URL externe si vous ne l'avez pas téléchargée.

Mat
la source
3
  1. Cliquez sur le code JAVA que vous souhaitez voir. (Cliquez sur List pour ouvrir List.java si vous souhaitez vérifier le code source de java.util.List)
  2. Cliquez sur le bouton "Joindre la source".
  3. Il vous sera demandé de "Sélectionner l'emplacement (dossier, JAR ou zip) contenant la source de rt.jar).
  4. Sélectionnez l'option "Emplacement externe". Recherchez le fichier src.zip.
  5. Le chemin de src.zip est: * \ Java \ jdk1.8.0_45 \ src.zip
BSM
la source
2
  1. Mettez les fichiers source dans un fichier zip (comme il le fait pour la source java)
  2. Allez dans Propriétés du projet -> Bibliothèques
  3. Sélectionnez la pièce jointe source et cliquez sur "Modifier"
  4. Sur la configuration de la pièce jointe source, cliquez sur «Variable»
  5. Sur "Sélection de variables", cliquez sur "Nouveau"
  6. Mettez un nom significatif et sélectionnez le fichier zip créé à l'étape 1
Ranga
la source
1

Une autre option consiste à faire un clic droit sur votre fichier jar qui se trouverait sous (Votre projet) -> Bibliothèques référencées -> (votre fichier jar) et à cliquer sur les propriétés. Cliquez ensuite sur Java Source Attachment. Et puis dans le chemin de l'emplacement, mettez l'emplacement de votre fichier jar source.

C'est juste une autre approche pour joindre votre fichier source.

Tailleur Nilesh
la source
1

Si vous créez vos bibliothèques avec gradle, vous pouvez attacher des sources aux jars que vous créez, puis eclipse les utilisera automatiquement. Voir la réponse de @MichaelOryl Comment construire des sources jar avec gradle .

Copié ici pour votre référence:

jar {
    from sourceSets.main.allSource
}

La solution montrée est à utiliser avec le plugin gradle java. Le kilométrage peut varier si vous n'utilisez pas ce plugin.

Joshua Richardson
la source
0

Une autre pensée pour rendre cela plus facile lors de l'utilisation d'une construction automatisée:

Lorsque vous créez un fichier jar de l'un de vos projets, créez également un fichier source jar:
project.jar
project-src.jar

Au lieu d'aller dans la boîte de dialogue des options de chemin de construction pour ajouter une référence source à chaque jar, essayez ce qui suit: ajoutez une référence source via la boîte de dialogue. Modifiez votre .classpath et en utilisant la première entrée jar comme modèle, ajoutez les fichiers jar source à chacun de vos autres jars.

De cette façon, vous pouvez utiliser les aides à la navigation d'Eclipse au maximum tout en utilisant quelque chose de plus autonome pour créer vos projets.

Akrikos
la source
0

J'allais demander une alternative à l'attachement de sources au même JAR utilisé dans plusieurs projets. À l'origine, j'avais pensé que la seule alternative était de reconstruire le JAR avec la source incluse mais en regardant la fonctionnalité "bibliothèque utilisateur", vous n'avez pas à construire le JAR avec la source.

C'est une alternative lorsque vous avez plusieurs projets (liés ou non) qui font référence au même JAR. Créez une "bibliothèque utilisateur" pour chaque JAR et attachez-leur la source. La prochaine fois que vous aurez besoin d'un JAR spécifique, au lieu d'utiliser "Ajouter des JAR ..." ou "Ajouter des JAR externes ...", vous ajoutez la "bibliothèque utilisateur" que vous avez créée précédemment.

Vous n'auriez qu'à attacher la source UNE FOIS par JAR et pouvez la réutiliser pour un nombre illimité de projets.

nevets1219
la source
0

Pour ceux qui écrivent des plugins Eclipse et souhaitent inclure la source ... dans la fonction ExportWizard, il existe une option pour inclure la source: entrez la description de l'image ici

Stefan
la source
0

Cliquez simplement sur attacher la source et sélectionnez le chemin du dossier ... le nom sera le même que le nom du dossier (dans mon cas). N'oubliez pas une chose dont vous avez besoin pour sélectionner le chemin jusqu'à l'emplacement de base du dossier du projet avec "\" au suffixe ex D: \ MyProject \

Gaurav Deshmukh
la source
-2

Cela peut sembler exagéré, mais si vous utilisez maven et incluez la source, le plugin mvn eclipse générera toute la configuration source nécessaire pour vous donner toute la documentation en ligne que vous pourriez demander.

Alex Argo
la source
1
Mais avec cela, il faut un marteau pour votre système de construction Eclipse normal, écrasant tout ce qui fonctionnait.
James Moore