Вы можете создать экземпляр URLClassLoader для загрузки новых классов из каталога:
URL dirUrl = new URL("file:/" + "path_to_dir" + "/"); // 1
URLClassLoader cl = new URLClassLoader(new URL[] {dirUrl},
getClass().class.getClassLoader()); // 2
Class loadedClass = cl.loadClass("com.xyz.MyClass");
MyClass obj = (MyClass) loadedClass.newInstance();
obj.doSomething();
Строка 1 создает URL
для каталога, в котором находятся файлы .class.
Строка 2 создает новый экземпляр URLClassLoader
.Первый аргумент - это массив URL, которые будут использоваться в качестве источника.Вы можете указать несколько каталогов URL в массиве.Второй аргумент - загрузчик классов, который станет родителем этого нового загрузчика классов.В качестве этого аргумента мы передаем загрузчик классов класса, выполняющего приведенный выше код.
Классы, загруженные дочерним загрузчиком классов, могут получить доступ к классам, загруженным родительским загрузчиком классов.