Les symptômes décrivent parfaitement le cas où la classe trouvée n'a pas de source associée (ou attribuée).
- Vous pouvez associer les sources des classes JDK dans Préférences> Java> JRE installé . Si JRE (et non JDK) est détecté comme JRE par défaut à utiliser, vos classes JDK n'auront pas de sources attachées. Notez que toutes les classes JDK n'ont pas fourni de sources, certaines d'entre elles sont distribuées sous forme binaire uniquement.
- Les classes du chemin de construction du projet, ajoutées manuellement, nécessitent que vous attachez manuellement la source associée. La source peut résider dans un fichier zip ou jar, dans l'espace de travail ou dans le système de fichiers. Eclipse analysera le zip, de sorte que vos sources ne doivent pas nécessairement être à la racine du fichier d'archive, par exemple.
- Classes, issues de dépendances provenant d'autres plugins (maven, PDE, etc.). Dans ce cas, c'est au plugin comment la source sera fournie.
- PDE exigera que chaque plugin ait le bundle XXX.source correspondant , qui contient la source du plugin. Plus d'informations peuvent être trouvées ici et ici .
- m2eclipse peut récupérer les sources et les javadocs pour les dépendances Maven s'ils sont disponibles. Cette fonctionnalité devrait être activée dans les préférences de m2eclipse (l'option a été nommée quelque chose comme " Télécharger la source et les javadocs ".
- Pour les autres plugins, vous devrez consulter leur documentation
- Les classes chargées à partir de votre projet sont automatiquement mises en correspondance avec les sources du projet.
Mais que se passe-t-il si Eclipse vous suggère toujours d'attacher la source, même si j'ai correctement défini mes classes et leurs sources:
Cela signifie presque toujours qu'Eclipse trouve la classe d'un endroit différent de celui auquel vous vous attendez. Inspectez votre chemin de recherche source pour voir où il pourrait obtenir la mauvaise classe. Mettez à jour le chemin en fonction de vos résultats.
Eclipse ne trouve rien du tout, lorsque le point d'arrêt est atteint:
Cela se produit, lorsque vous êtes source, le chemin de recherche ne contient pas la classe actuellement chargée dans le runtime. Même si la classe est dans l'espace de travail, elle peut être invisible pour la configuration de lancement, car Eclipse suit strictement le chemin de recherche de source et attache uniquement les dépendances du projet, qui est actuellement débogué.
Les bundles de débogage dans PDE constituent une exception . Dans ce cas, comme l'environnement d'exécution est composé de plusieurs projets, qui n'ont pas à déclarer de dépendances les uns sur les autres, Eclipse trouvera automatiquement la classe dans l'espace de travail, même si elle n'est pas disponible dans le chemin de recherche source.
Je ne peux pas voir les variables lorsque j'atteins un point d'arrêt ou qu'il ouvre simplement la source, mais ne sélectionne pas la ligne de point d'arrêt:
Cela signifie que lors de l'exécution, la JVM ou les classes elles-mêmes ne disposent pas des informations de débogage nécessaires. Chaque fois que les classes sont compilées, des informations de débogage peuvent être jointes. Pour réduire l'espace de stockage des classes, ces informations sont parfois omises, ce qui complique le débogage de ce code. Votre seule chance est d'essayer de recompiler avec le débogage activé.
Le visualiseur de source Eclipse affiche des lignes différentes de celles qui sont réellement exécutées:
Cela peut parfois montrer que l'espace vide est également exécuté. Cela signifie que vos sources ne correspondent pas à votre version d'exécution des classes. Même si vous pensez que ce n'est pas possible, c'est le cas, alors assurez-vous de configurer les bonnes sources. Ou votre environnement d'exécution correspond à vos dernières modifications, en fonction de ce que vous essayez de faire.