Как загрузить все классы файла JAR во время выполнения? - PullRequest
0 голосов
/ 27 сентября 2011

Согласно этому вопросу , можно загрузить класс из файла jar с помощью:

ClassLoader loader = URLClassLoader.newInstance(
    new URL[] { jarFileURL },
    getClass().getClassLoader()
);
Class<?> clazz = Class.forName("mypackage.MyClass", true, loader);

Как загрузить все классы, содержащиеся в файле jar?

Ответы [ 3 ]

3 голосов
/ 27 сентября 2011

Загрузчик классов загрузит файл .class, как только он понадобится.Если он не нужен, он не будет загружен.

Почему вы думаете, что ваш подход будет улучшением по сравнению с тем, что уже делает загрузчик классов?

0 голосов
/ 12 ноября 2013

Если вы действительно хотите читать классы динамически, предоставьте это профессионалам, которые это уже реализовали. Реализовать свой собственный загрузчик классов сложно. Поверь мне. Я уже пробовал несколько раз. Вместо этого используйте что-то вроде OSGi, что обеспечивает динамическую загрузку классов и многое другое.

0 голосов
/ 27 сентября 2011

Вам нужно будет открыть его в виде zip-файла, просмотреть имена, предположить, что все записи, заканчивающиеся на .class, являются файлами классов и загрузить их, игнорируя вложенные классы и т.

Но .... почему?

...