как реализовать ClassLoader для списка каталогов в качестве пути к классам? - PullRequest
0 голосов
/ 16 июня 2020

как реализовать ClassLoader для списка каталогов в качестве пути к классам? например,

public class MyClassLoader extends ClassLoader {

    private List<String> directories;

    ...
}

Искать классы и ресурсы в каталогах.

Class.forName("mypackage.Foo", myClassLoader);
myClassLoader.getResourceAsStream("foo/bar.xml");

Любой такой загрузчик классов в java стандартной библиотеке?

1 Ответ

0 голосов
/ 16 июня 2020

Да, в Java для этого есть стандартный загрузчик классов URLClassLoader :

URL[] urls = {
    new URL("file:/path/to/dir1/"),
    new URL("file:/path/to/dir2/"),
    ...
};

ClassLoader loader = new URLClassLoader(urls);
Class<?> foo = Class.forName("mypackage.Foo", true, loader);

Единственное, что вам нужно сделать, это преобразовать список каталогов в массив URL-адресов. Но я думаю, это легко. Оставляю в качестве упражнения :)

...