Есть ли способ определить, какие классы загружаются из каких jar-файлов во время выполнения?
Я уверен, что мы все были в аду JAR раньше. Я сталкивался с этой проблемой много проблем с ClassNotFoundException
s и NoClassDefFoundError
s в проектах. Я хотел бы избежать нахождения всех экземпляров класса в jar-файлах и использования процесса исключения в коде, в результате чего CNFE находит виновника.
Дадут ли вам какие-либо инструменты профилирования или управления?
Эта проблема очень раздражает просто потому, что мы должны иметь эту информацию во время загрузки класса. Должен быть способ добраться до него или записать его и найти, но я ничего не знаю, что будет делать это, не так ли?
Я знаю, OSGi и версионные комплекты / модули стремятся сделать это не проблемой ... но, похоже, в ближайшее время это не исчезнет. :)
ПРИМЕЧАНИЕ: я нашел этот вопрос - это подмножество моего вопроса, связанного с классами, загруженными из версионных jar-файлов.
Обновление : В этой статье рассказывается о стратегии поиска класса внутри jar-файлов (либо в текущем каталоге), либо в вашем M2_REPO. JarScan, просканируйте все файлы JAR во всех подпапках для определенного класса
Обновление 2 : также несколько связано, JBoss Tattletale