Lors du débogage d’une application Java dans Eclipse, je reçois une erreur " Source non trouvée " dans deux cas:
Les fichiers sont là, mais Eclipse n’y entrera pas, mais un bouton pour " attacher la source "
J'ai essayé d'attacher (qui a ouvert une boîte de dialogue pour définir une variable?!) Et Eclipse a sauté au fichier, mais le débogueur n'a pas pu inspecter les variables. De plus, attacher manuellement la source pour chaque dépendance n'est pas pratique, car dans mon cas, il existe des milliers de fichiers de dépendance.
Je suis nouveau dans Eclipse\Java, alors une explication de la raison pour laquelle cela se produit + comment la résoudre aiderait beaucoup!
Le débogage Eclipse fonctionne avec la classe réellement chargée par le programme.
Les symptômes que vous décrivez semblent que la classe en question n’a pas été trouvée dans le projet, mais dans un fichier jar de distribution sans informations de débogage trouvées avant le projet avec lequel vous travaillez.
Cela peut se produire pour plusieurs raisons, mais regardez l'emplacement où les classes présentant ce comportement sont trouvées (regardez dans le volet de navigation pour l'identifier). Vous devrez probablement modifier le chemin de génération du projet pour éviter d'utiliser ce fichier JAR et pour que la machine virtuelle Java utilise 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 compilation est géré par le plug-in m2e. Ce problème devrait donc être très moins fréquent que lorsque la question a été posée.
Juste 3 étapes pour configurer Eclipse IDE:
Remarque: Après la mise à jour des chemins de recherche source, vous devrez arrêter et redémarrer votre session de débogage. Sinon, le fichier avec la source manquante continuera d'afficher "source manquante".
Editer la recherche source ____Sélectionnez la commande Editer la recherche source ... [Editer la recherche source] pour ouvrir la boîte de dialogue Chemin source, qui vous permet de modifier le chemin de recherche source de la cible de débogage sélectionnée.
IMPORTANT Redémarrez Eclipse après cette dernière étape.
Le symptôme décrit parfaitement le cas où la classe trouvée n'a pas de source associée (ou assignée).
Mais qu'arrive-t-il si Eclipse suggère toujours d'attacher une source, même si je règle correctement mes classes et leurs sources:
Cela signifie presque toujours qu'Eclipse trouve la classe dans 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 le chemin de recherche de source 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 source et attache uniquement les dépendances du projet actuellement débogué.
Les ensembles de débogage dans PDE constituent une exception. Dans ce cas, étant donné que le moteur d'exécution est composé de plusieurs projets, qui ne doivent pas nécessairement déclarer de dépendance, Eclipse recherche 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 je frappe un point d'arrêt ou que cela ouvre simplement la source, mais ne sélectionne pas la ligne du point d'arrêt:
Cela signifie qu'au moment 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, cette information est parfois omise, ce qui complique le débogage de ce code. Votre seule chance est d'essayer de recompiler avec le débogage activé.
Le visualiseur source Eclipse affiche des lignes différentes de celles exécutées:
Cela peut parfois montrer que des espaces vides sont également exécutés. 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 bien le cas, assurez-vous donc de configurer les sources correctes. Ou votre exécution correspond à vos dernières modifications, en fonction de ce que vous essayez de faire.
De http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source
"Lors de l'exécution en mode débogage, cliquez avec le bouton droit sur le thread en cours d'exécution (dans l'onglet Threads) et sélectionnez Modifier la recherche de source. À ce stade, vous devriez pouvoir ajouter le projet/jar nécessaire contenant votre code source."
J'ai ajouté mon projet actuel de cette manière et cela a résolu mon problème
J'ai eu le même problème avec mon projet Eclipse Maven. Je me suis battu avec cette question assez longtemps alors j'ai essayé de reconstruire le projet avec
mvn clean Eclipse:eclipse
et ça a aidé.
Supprimez la configuration de débogage existante et créez-en une nouvelle. Cela devrait résoudre le problème.
Je faisais face au même problème, j'ai suivi les étapes ci-dessous.
Window => Preferences => Java => Installed JREs,
Vous voyez dans l'écran ci-dessus que Jre1.8.0_12
est sélectionné.
sélectionnez le JRE que vous utilisez et cliquez sur Edit. Vous devriez maintenant voir l'écran ci-dessous.
Cliquez sur le répertoire, recherchez Jdk, il devrait ressembler à l'écran ci-dessous.
cliquez ok, et c'est fait
J'ai eu le problème que mon Eclipse ne déboguait pas le code source de mon projet. Je recevais une page vierge avec "noeud de code source trouvé".
Veuillez cliquer sur le bouton Joindre le code source. Supprimez ensuite le dossier "par défaut", puis cliquez sur Ajouter, accédez à l'emplacement de votre projet et joignez-le. Cela a fonctionné pour moi
Evidemment, Eclipse ne sait pas automatiquement où se trouve le code source des fichiers jar dépendants. Il n’est pas clair pourquoi le débogueur n’a pas pu inspecter les variables une fois la source attachée. Une possibilité est une 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 référentiel local, vous pouvez installer m2Eclipse , le plugin maven Eclipse et voir si cela vous aide à résoudre votre problème.
Dans mon cas, dans "Attach Source", j'ai ajouté l'autre répertoire de projet maven dans le panneau "Configuration de la pièce jointe source". L'ajout de la dernière version du fichier jar à partir du référentiel m2 ne fonctionne pas. Toutes les classes de l'autre projet maven n'ont pas pu s'ouvrir.
Ici test était mon autre projet maven contenant toutes les sources Java.
Vous pourriez avoir le code source d'une dépendance accessible à Eclipse. Mais Eclipse ne connaît pas le code source du code chargé dynamiquement. Par exemple. par Maven.
Dans le cas de Maven, je vous recommande d'utiliser le plugin run-jetty-run:
http://code.google.com/p/run-jetty-run/
Pour contourner le problème, vous pouvez également vous connecter à une machine virtuelle Java en cours d’exécution avec le débogueur et voir le code . Vous pouvez également utiliser le plugin Dynamic Source Lookup pour Eclipse à partir d’ici:
https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup
Malheureusement, cela ne m'a pas aidé car il y a des problèmes avec les chemins Windows avec des espaces.
J'ai rempli une demande d'amélioration sur Eclipse Bugzilla et si vous acceptez le problème, "La source introuvable" devrait disparaître pour toujours, merci de voter pour cela ici:
https://bugs.Eclipse.org/bugs/show_bug.cgi?id=384065
Merci!
Sasa
Lors de l'exécution en mode débogage, cliquez sur Modifier la recherche source après avoir été suspendu du fil. À ce stade, nous devrions pouvoir ajouter le projet/jar nécessaire contenant votre code source . Après avoir ajouté mon projet actuel de cette manière, cela a résolu mon problème. Merci
Eh bien, voici ce qui a fonctionné pour moi. J'ai essayé toutes les solutions possibles sur StackOverflow. J'ai essayé de changer mon emplacement source dans le menu de débogage, 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 tiens à préciser que je n'essayais pas de visualiser le code source d'une personne externe, je voulais simplement voir mon code OWN, mais chaque fois que j'intervenais dans les méthodes que j'avais écrites et qui étaient dans mon projet, j'avais le Erreur "Source trouvée".
Après avoir finalement demandé à un expert, mon problème était que la première chose que faisait Eclipse était d’appeler un chargeur de classe, ce que vous pouvez voir à partir de la pile de débogage. Tout ce que je devais faire était F6 (passer) puis cela me ramena à mon appel initial et ensuite F5 (entrer). Et il y avait mon code. Soupir ... une solution simple mais une heure perdue.
cela a fonctionné pour moi
clic droit sur projet -> Propriétés -> Assemblage de déploiement -> ajouter votre jar
J'ai eu le même problème. Dans mon cas, j'ai désactivé Window-Preferences-Java-Debug [Suspendre l'exécution sur des exceptions non capturées]. Ensuite, la console m'a montré l'erreur correcte: mon utilisateur MySql n'avait pas les privilèges pour accéder à la base de données. Selon ce sujet.
Info: Ceci 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 utilisez dans le fichier pom.xml correspondant (par exemple, 1.0.1-SNAPSHOT) ..__ Il est possible que votre code soit à jour, mais votre pom. Les dépendances XML continuent à utiliser les anciens JAR/Snapshots (avec l'ancien code).
Trouver le problème:
Dans mon cas, la version Maven de l'autre projet référencé ne correspond pas à la version du projet test. Une fois qu'ils étaient identiques, le problème a disparu.
Si vous souhaitez attacher du code source à un fichier JAR par téléchargement automatique, utilisez ce plugin Eclipse Java Source Attacher
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 .
Dans mon cas avec les projets Tomcat, j’ai vérifié le projet ici: Fenêtre - Préférences - Tomcat - Chemin source - Ajouter des projets Java au chemin source
J'ai eu un problème lié au débogage du serveur Glassfish dans Eclipse . Cela a été provoqué par le chargement du code source depuis un référentiel différent (passage de SVN à GitHub). Au cours du processus, le serveur Glassfish a utilisé les classes compilées incorrectes. Par conséquent, la source et le temps d’exécution ne sont pas synchronisés avec les points de rupture apparaissant sur les lignes vides.
Pour résoudre ce problème, renommez ou supprimez le dossier principal du répertoire de classes et Glassfish recréera l’ensemble de l’arborescence du répertoire de la classe, y compris la mise à jour des fichiers de classe avec la version correctement compilée.
Le répertoire de classes se trouve dans:/workspace/glassfish3122eclipsedefaultdomain/eclipseApps/<votre application Web>/WEB-INF/classes
Cliquez sur -> Modifier le chemin de recherche source
ensuite
Cliquez sur -> Ajouter, puis sélectionnez le projet Java et sélectionnez le chemin du projet.
Si vous utilisez Eclipse ou STS, installez et utilisez GC (plug-in GrepCode). Il est parfois inutile de joindre le fichier source .Zip au chemin du projet pour que GrepCode fonctionne correctement.
J'ai eu le même problème avec Eclipse 2019-03 (4.11.0) et je n'ai pu le résoudre qu'en effectuant le débogage via le débogage distant au lieu de le lancer directement en mode débogage.
J'ai eu ce problème alors que je travaillais sur du code Java pour traiter un fichier Excel contenant un ensemble de données, puis le convertir en fichier .csv, j’ai essayé de répondre à ce message, mais ils ne fonctionnaient pas . Le problème était le fichier jar fichiers eux-mêmes. après avoir téléchargé les fichiers jar nécessaires un par un (anciennes versions) et les avoir ajoutés à mon projet, l'erreur "source non trouvée" a disparu . Peut-être pouvez-vous vérifier vos fichiers jar . espérons que cela vous aidera.
Accédez à la configuration de débogage dans Eclipse et utilisez l'objectif ci-dessous pour exécuter votre application.
-Dmaven.surefire.debug
par exemple
-Dmaven.surefire.debug exec: Java