Eclipse Java debugging: source introuvable

pendant le débogage d'une application java dans eclipse je reçois un" Source introuvable "erreur dans deux cas:

  • entrer dans un fichier dans un autre projet qui est déjà importé
  • accès à un fichier dans un dépôt maven installé

les fichiers sont là, mais eclipse ne va pas y entrer, à la place il affiche un bouton à " attachez source

j'ai essayé d'attacher (qui a ouvert un dialogue pour définir une variable?!) et eclipse ont sauté le fichier, mais le débogueur n'a pas pu inspecter toutes les variables. De plus, fixer manuellement la source de chaque dépendance n'est pas pratique, comme dans mon cas il y a des milliers de fichiers de dépendances.

je suis nouveau eclipsejava donc une explication de pourquoi ce qui se passe + comment faire pour résoudre ce serait d'une grande aide!

154
demandé sur Jonathan 2011-05-30 13:36:46

28 réponses

Eclipse debugging fonctionne avec la classe réellement chargé par le programme.

les symptômes que vous décrivez ressemble à la classe en question n'a pas été trouvé dans le projet, mais dans un bocal de distribution sans debug info trouvé avant le projet avec lequel vous travaillez.

Cela peut se produire pour plusieurs raisons, mais un regard à l'endroit où les classes montrant ce comportement est trouvé (look dans le volet de navigation de l'identifier). Vous devrez probablement changer le chemin de construction du projet pour éviter d'utiliser ce jar et demander à la JVM d'utiliser le projet à la place.

EDIT: notez qu'à partir de 2018 il est courant d'utiliser un framework de construction comme Maven, où le chemin de construction est géré par le plugin m2e, donc ce problème devrait être très moins fréquent que lorsque la question a été posée.

43
répondu Thorbjørn Ravn Andersen 2018-02-14 20:51:42

Seulement 3 étapes pour la configuration de l'IDE Eclipse:

Note: après avoir mis à jour les chemins de recherche des sources, vous devrez arrêter et redémarrer votre session de débogage. Sinon, le fichier avec la source manquante continuera à afficher "source manquante".

Modifier La Source De Recherche Sélectionnez la recherche Edit Source... commande [Edit Source Lookup ] pour ouvrir la boîte de dialogue Chemin Source, qui vous permet d'effectuer des modifications vers le chemin de recherche source de la cible de débogage sélectionnée.

enter image description here

enter image description here

enter image description here

IMPORTANT redémarrer Eclipse après cette dernière étape.

245
répondu Douglas Frari 2017-09-04 14:34:52

les symptômes décrivent parfaitement le cas lorsque la classe trouvée n'a pas de source associée (ou assignée).

  • vous pouvez associer les sources pour les classes JDK dans Préférences > Java > Installed JRE . Si JRE (et non JDK) est détecté comme JRE par défaut à utiliser, alors vos classes JDK n'auront pas de sources attachées. Notez que, pas toutes les classes JDK ont fourni des sources, certaines d'entre elles sont distribuées sous forme binaire seulement.
  • Les Classes
  • du chemin de construction du projet, ajoutées manuellement, nécessitent que vous attachiez 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 va scanner le zip, donc vos sources n'ont pas besoin d'être dans la racine du fichier d'archive, par exemple.
  • Classes, à partir de dépendances provenant d'un autre plugin (maven, PDE, etc.). Dans ce cas, c'est le plugin comment la source sera fourni.
    • PDE requerra que chaque plugin ait XXX correspondant.source bundle, qui contient la source du plugin. Plus d'informations peuvent être trouvées ici et ici .
    • m2eclipse peut récupérer des sources et des javadocs pour des dépendances Maven si elles sont disponibles. Cette fonctionnalité doit être activée m2eclipse préférences (l'option a été nommé quelque chose comme " Télécharger la source et la documentation javadoc ".
    • pour les autres plugins, vous aurez besoin de consulter leur documentation
  • Les Classes
  • , qui sont chargées à partir de votre projet, sont automatiquement mises en correspondance avec les sources du projet.

correctement définir mes classes et leurs sources:

cela signifie presque toujours Qu'Eclipse trouve la classe d'un endroit différent de ce que vous attendez. Inspectez votre chemin de recherche de source pour voir où il pourrait obtenir la mauvaise classe. Mettez à jour le chemin en fonction de vos résultats.

Eclipse ne trouve pas de quoi que ce soit, lorsque le point d'arrêt est atteint:

cela se produit, lorsque vous êtes chemin de recherche de source ne contient pas la classe, qui est actuellement chargée à l'exécution. Même si la classe est dans l'espace de travail, elle peut être invisible à la configuration de lancement, car Eclipse suit strictement le chemin de recherche source et n'attache que les dépendances du projet, qui est actuellement débogué.

une exception est les paquets de débogage dans PDE . Dans ce cas, parce que l'exécution est composée de plusieurs projets, qui n'ont pas à déclarer dependencies on another, Eclipse va automatiquement trouver 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 quand je frappe un point de rupture ou il ouvre simplement la source, mais ne sélectionne pas la ligne de point de rupture:

cela signifie que dans le runtime, soit la JVM, soit les classes elles-mêmes n'ont pas les informations de débogage nécessaires. Chaque fois que les classes sont compilées, les informations de débogage peuvent être attachés. Pour réduire l'espace de stockage des classes, cette information est parfois omise, ce qui rend le débogage de ce code pénible. Votre seule chance est d'essayer et de recompiler avec debug activé.

Eclipse Source viewer affiche des lignes différentes de celles qui sont réellement exécutées:

Il parfois peut montrer que l'espace vide est exécutée. Cela signifie que vos sources ne correspondent pas à votre version runtime des classes. Même si vous pensez que ce n'est pas possible, il est, alors assurez-vous d'installation correcte des sources. Ou votre runtime correspond à vos derniers changements, selon ce que vous essayez de faire.

42
répondu Danail Nachev 2011-05-30 22:22:17

de http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source

" lors de l'exécution en mode déboguage, cliquez avec le bouton droit de la souris sur le thread en cours d'exécution (dans l'onglet threads) et sélectionnez Edit Source Lookup. À ce stade, vous devriez être en mesure d'ajouter le projet/jar nécessaire qui contient votre code source."

j'ai ajouté mon projet actuel, de cette façon, et il a résolu mon problème

9
répondu Vering 2013-01-10 11:23:54

j'ai eu le même problème avec mon projet eclipse maven. J'ai lutté avec cette question assez longtemps puis j'ai essayé de reconstruire projet avec

mvn clean eclipse:eclipse

et ça a aidé.

7
répondu krzysiek.ste 2014-04-25 09:20:34

supprimer la Configuration de débogage existante et en créer une nouvelle. Que doit résoudre le problème.

5
répondu Rajneesh Sekharmantri 2012-11-01 18:07:08

je faisais face à la même question,j'ai suivi les étapes de bellow.

Fenêtre => Préférences => Java => Installé Jre ,

enter image description here

vous voyez dans l'écran ci-dessus Jre1.8.0_12 est sélectionné.

sélectionnez le JRE que vous utilisez et cliquez sur Modifier . Maintenant, vous devriez voir l'écran de cloche.

enter image description here

cliquez sur le répertoire, recherchez Jdk, il doit ressembler à l'écran ci-dessous. enter image description here

cliquez sur ok, et c'est fait

4
répondu Varun 2017-03-30 11:46:54

j'ai eu le problème que mon Eclipse ne déboguait pas le code source de mon projet. Je recevais une page blanche avec "source code node found".

cliquez sur le bouton "Joindre le code source". Ensuite, supprimez le dossier" par défaut", puis cliquez sur Ajouter et allez à l'emplacement de votre projet et de joindre. Cela a fonctionné pour moi

3
répondu avase 2012-10-11 04:15:14

de toute évidence, Eclipse ne sait pas automatiquement où se trouve le code source des bocaux dépendants. Il n'est pas clair pourquoi le débogueur ne pouvait pas inspecter les variables une fois la source fixée. Une possibilité est la source incorrecte/incompatible.

en supposant que vous avez un projet maven et que les sources des dépendances sont téléchargées et disponibles dans le dépôt local, vous pouvez installer m2eclipse , le plugin Maven eclipse et voir si qui aide dans la résolution de votre problème.

2
répondu Raghuram 2011-05-30 09:47:24

vous pourriez avoir le code source d'une dépendance accessible à Eclipse. Mais Eclipse ne sait pas pour le code source pour le code qui est chargé dynamiquement. Par exemple: par Maven.

dans le cas de Maven, je vous recommande d'utiliser run-jetty-run plugin:

http://code.google.com/p/run-jetty-run /

comme solution de contournement, vous pouvez également vous connecter à un JVM en cours d'exécution avec le débogueur et vous verrez le code. Vous pouvez aussi utiliser le plugin Dynamic Source Lookup pour Eclipse d'ici:

https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup

malheureusement il ne m'a pas aidé car il a des problèmes avec les chemins de fenêtres avec des espaces.

j'ai rempli une demande d'amélioration sur Eclipse Bugzilla et si vous êtes d'accord sur ce point "Source non trouvée" devrait disparaître à jamais, s'il vous plaît votez pour elle ici:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=384065

Merci!

Sasa

1
répondu ssasa 2012-11-27 15:52:24

dans mon cas dans" Attach Source", j'ai ajouté l'autre répertoire de projet maven dans le panneau" Source Attachment Configuration". L'ajout de la dernière version jar du dépôt m2 ne fonctionne pas. Tous les cours de l'autre projet maven n'ont pas été ouverts.

enter image description here

ici test était mon autre projet maven contenant toutes les sources java.

1
répondu Lucky 2018-06-07 06:05:44

j'ai eu le même problème. Dans mon cas, j'ai désactivé-Fenêtre de Préférences Java Debug [Suspendre l'exécution sur les exceptions]. Puis, la console m'a montré la bonne erreur: mon utilisateur MySql n'avait pas les privilèges d'accéder à la base de données. selon ce thème.

0
répondu Alex 2017-05-23 11:55:10

Info: C'est une solution possible, lorsque vous utilisez maven (pom.xml) avec quelques projets.

si vous travaillez avec maven, assurez-vous de la version que vous prenez à l'intérieur de la pom correspondante.xml( E. G. 1.0.1-SNAPSHOT). Il est possible que votre code soit à jour, mais votre pom.les dépendances xml prennent toujours l'ancien JAR/Snapshots (avec l'ancien code).

trouver le problème:

  • essayez de déboguer la fonction fichier.
  • par conséquent, établir un point de rupture dans la zone de code pertinente.
  • quand " source non trouvée " apparaît, assurez-vous de lier dans le bon projet (où le .le fichier java peut être trouvé).
  • Le compiler .le fichier de classe s'ouvre dans l'éditeur IDE.
  • cliquez sur" lien avec L'éditeur " pour trouver le JAR/Snapshot correspondant.
  • maintenant, assurez - vous que ce pot est le plus récente. Il y a là une nouvelle. Dans ce cas, écrivez le numéro de version le plus récent dans la pom.XML.
  • puis faire une mise à jour maven et construire (E. G. "mvn clean install-U") dans le bon répertoire de projet.
0
répondu Birol Efe 2013-02-14 12:31:05

si vous êtes sur eclipse ou STS s'il vous plaît installer et utiliser GC(Grepcode Plugin) ,un certain temps, vous n'avez pas besoin de joindre la source .fichier zip dans le chemin de votre projet pour que le GrepCode fonctionne très bien pour vous.

0
répondu danielad 2013-06-03 09:11:08

j'ai eu un problème lié au débogage du serveur Glassfish dans Eclipse. Ceci a été obtenu en chargeant le code source d'un dépôt différent (passant de SVN à GitHub). Dans le processus, les mauvaises classes compilées ont été utilisées par le serveur Glassfish et par conséquent, la source et le temps d'exécution seraient hors de synchronisation avec des points de rupture apparaissant sur des lignes vides.

pour résoudre ce problème, renommer ou supprimer le dossier supérieur du répertoire de classes et Glassfish va recréer l'ensemble de l'arborescence du répertoire de classe, y compris la mise à jour des fichiers de classe avec la version correctement compilée.

le répertoire des classes est situé dans:/workspace/glassfish3122eclipsedefaultdomain/ eclipseApps/< your Web Application>/WEB-INF / classes

0
répondu user3035873 2013-11-26 10:18:35

dans mon cas avec les projets tomcat j'ai vérifié le projet ici: Fenêtre - Préférences - Tomcat - Chemin de la Source - Ajouter des projets java de la source chemin

0
répondu user3132194 2014-06-10 11:02:03

dans mon cas, la version Maven de l'autre projet référencé ne correspondait pas à la version du projet test. Une fois les mêmes, le problème a disparu.

0
répondu maarten 2014-09-18 17:36:33

lors de l'exécution en mode débogage, cliquez sur Modifier la recherche de la Source après la suspension du thread. À ce stade, nous devrions être en mesure d'ajouter le projet/jar nécessaire qui contient votre code source. Après j'ai ajouté mon projet actuel, de cette façon, et il a résolu mon problème. Merci

0
répondu Yoga 2015-02-24 22:10:07

si vous voulez attacher du code source à n'importe quel pot par téléchargement automatique, essayez d'utiliser ce plugin Eclipse Java Source Attacher

enter image description here

0
répondu KrishPrabakar 2015-03-20 05:05:21

j'ai eu ce problème en travaillant sur le code java pour faire le processus sur un fichier excel contenant un ensemble de données, puis le convertir en .fichier csv, j'ai essayé de réponses à ce post, mais ils n'ont pas de travail. le problème était les fichiers jar eux-mêmes. après avoir téléchargé les fichiers jar nécessaires un par un (anciennes versions) et de les ajouter à mon projet, "source not found" erreur disparu. peut-être que vous pouvez vérifier vos fichiers jar. espérons que cela pourrait l'aider.

0
répondu simin 2015-04-27 21:21:20

cela a fonctionné pour moi

clic droit sur le Projet - > Propriétés - > Montage - > ajouter votre jar

0
répondu TajnosAgentos 2015-07-27 10:59:51

allez à la configuration de débogage dans eclipse et utilisez le but ci-dessous pour exécuter votre application.

- Dmaven.infaillible.débogage

E. g

- Dmaven.infaillible.debug exec: java

0
répondu Vishvesh Phadnis 2017-08-31 10:36:20

dans mon cas, même après avoir édité la recherche des sources et ajouté le projet, ça n'a pas marché. J'ai configuré le chemin de construction du projet.

enter image description here

après ça, j'ai choisi la bibliothèque système JRE et ça a marché.

enter image description here

0
répondu Germa Vinsmoke 2018-01-21 07:47:50

voilà ce qui a marché pour moi. J'ai essayé toutes les solutions possibles sur StackOverflow qu'il y avait. J'ai essayé de changer l'emplacement de ma source dans le menu debug, j'ai installé le plugin M2E Eclipse, j'ai changé de Maven intégré, et j'ai installé le run-jetty-run et rien n'a fonctionné. Maintenant, je vais mettre en garde que je n'essayais pas de voir le code source d'une personne externe, je voulais juste voir mon propre code, mais chaque fois que je "suis intervenu" dans mes méthodes que j'ai écrit qui étaient dans mon projet, j'ai obtenu l'erreur "Source trouvée".

après avoir finalement demandé à un expert, mon problème était que la première chose Qu'Eclipse faisait était d'appeler un ClassLoader, ce que vous pouvez voir à partir de la pile de débogage. Tout ce que j'avais à faire, c'était F6 (un pas de plus) et puis ça m'a ramené à mon appel d'origine et ensuite F5 (un pas de plus). Et il y avait mon code. Soupir...une telle solution simple mais une heure perdue.

0
répondu Chris C 2018-04-06 15:17:22

pour les débutants,

il est possible que le fichier jar fasse partie du projet que vous n'avez pas encore inclus dans L'espace de travail Eclipse.

pour cela, vous devez connaître le nom du projet du fichier jar. Par exemple, son abc -18.0.0-SNAPSHOT.jar, cela signifie que le projet que vous êtes censé inclure dans votre espace de travail est abc .

0
répondu Shobhit Mittal 2018-09-10 06:53:26

Si vous essayez de déboguer votre projet java maven et eclipse n'est pas en mesure de trouver votre source, essayez l'une de ces.

  1. essayez d'ajouter ces lignes dans la pom.xml
<build>**<sourceDirectory>src/main/java</sourceDirectory>**...

essayez maven - > update puis debug

  1. aller au répertoire racine du projet;

mvn eclipse: eclipse

essayez maintenant de déboguer

-1
répondu Rajan 2016-09-07 19:41:44

dans le photon eclipse essayer d'éteindre "Window->Preferences->Java->Debug->Utilisation avancée de la source de recherche"

Edit: Il y a un bug lié dans cette version d'eclipse qui conduit à un message "source introuvable" lors du débogage des applications Java. Voir le rapport de bogue bugs.eclipse.org/bugs/show_bug.cgi?id=537699 pour plus de détails

-1
répondu 6pi 2018-09-19 16:31:17

dans mon cas, le problème a été résolu en cliquant sur Remove All Breakpoints

-4
répondu user2995311 2013-11-15 07:54:15