Как загрузить класс с аннотациями SpringClass из Spring jarJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как загрузить класс с аннотациями SpringClass из Spring jar

Сообщение Anonymous »

В весеннем проекте я получил следующие занятия:
interface IStep {
IStep doStep();
String getName();
}

@Component
public class Step1 implements IStep {
public final static String NAME = "STEP1";

...
}

@Component
public class Step1 implements IStep {
...
}

На основе этого проекта создается jar.
Используя простой Java-проект, я пытаюсь загрузить jar для анализа зависимостей между классы и создать несколько диаграмм. Мой первый вариант использования — найти все классы, реализующие IStep, и получить их имена.
Я пытаюсь использовать отражение, чтобы загрузить jar, получить классы и загрузить их. Однако я продолжаю получать сообщение об ошибке noclassdeffounderror на шаге 1. Когда я удаляю аннотацию @Component, все работает нормально. Как загрузить класс, не удаляя аннотацию?
JarFile jarFile = new JarFile(pathToJar);
Enumeration e = jarFile.entries();

URL[] urls = { new URL("jar:file:" + pathToJar+"!/") };
URLClassLoader cl = URLClassLoader.newInstance(urls);

while (e.hasMoreElements()) {
JarEntry je = e.nextElement();
if(je.isDirectory() || !je.getName().endsWith(".class") || !je.getName().contains("mypackagename")){
continue;
}
// -6 because of .class
String className = je.getName().substring(0,je.getName().length()-6);
className = className.replace('/', '.');
Class c = cl.loadClass(className); //noclassdeffounderror
}


Подробнее здесь: https://stackoverflow.com/questions/782 ... spring-jar
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»