Existe-t-il un moyen de déterminer quelles classes sont chargées à partir de quels jarres lors de l'exécution?Comment explorer les classes chargées à partir des fichiers JAR?
Je suis sûr que nous avons tous été en JAR enfer avant. J'ai traversé ce problème beaucoup de dépannage ClassNotFoundException
s et NoClassDefFoundError
sur des projets. Je voudrais éviter de trouver toutes les instances d'une classe dans les pots et d'utiliser le processus d'élimination sur le code provoquant un CNFE pour trouver le coupable. Est-ce que des outils de profilage ou de gestion vous donneront ce genre d'information?
Ce problème est super ennuyeux uniquement parce que nous devrions avoir cette information au moment où la classe est chargée. Il doit y avoir un moyen d'y arriver, ou de l'enregistrer et de le trouver, mais je ne connais rien qui puisse le faire, n'est-ce pas? Je sais que OSGi et les bundles/modules versionnés visent à faire de ce problème un problème ... mais cela ne semble pas vouloir disparaître de sitôt. :)
NOTE: J'ai trouvé cette question est un sous-ensemble de ma question liée aux classes chargées à partir de pots versionnés.
Mise à jour: Un peu lié, cet article explique une stratégie pour rechercher une classe dans les fichiers jar (soit sous le répertoire courant) ou dans votre M2_REPO. JarScan, scan all JAR files in all subfolders for specific class
Mise à jour 2: aussi un peu lié, JBoss Tattletale
Jason Day a raison, ce fait un double d'une question que je posais pas si longtemps. http://stackoverflow.com/questions/779650/where-on-the-file-system-was-my-java-class-loaded-from – shsteimer