Привет Я создаю плагин, который требует динамической загрузки кувшинов и доступа к классам и методам этих банок. Я попытался с помощью URLClassLoader и я в состоянии загружать классы, как показано нижеКак загружать все банки из каталога динамически?
URL myJarFile = new URL("jar","","file:"+jarPath);
URLClassLoader sysLoader =(URLClassLoader)ClassLoader.getSystemClassLoader();
Class sysClass = URLClassLoader.class;
Method sysMethod = sysClass.getDeclaredMethod("addURL", new Class[]{URL.class});
sysMethod.setAccessible(true);
sysMethod.invoke(sysLoader, new Object[]{myJarFile});
Но проблема с этим состоит в том, что мы должны загрузить классы в ClassLoader, указав свое имя индивидуально. Я хочу загрузить все классы из всех банок в пути класса и получить доступ к ним в любой момент времени.
Возможно ли это с помощью URLClassLoader? Если нет, то какие другие варианты? Насколько полезен OSGI для достижения этого?
Заранее благодарен!
«Я хочу загрузить все классы из всех банок в пути класса и получить к ним доступ в любой момент времени». Зачем??? Ваш вопрос не подлежит обсуждению без какого-либо представления о вашей мотивации. Если вы пытаетесь создать расширяемое приложение с возможностью добавления плагинов, вы должны * абсолютно * использовать OSGi. –