如何为目录列表实现类加载器作为类路径?
how to implement ClassLoader for a list of directories as classpath?
如何为目录列表实现类加载器作为类路径?例如,
public class MyClassLoader extends ClassLoader {
private List<String> directories;
...
}
在目录下搜索类和资源。
Class.forName("mypackage.Foo", myClassLoader);
myClassLoader.getResourceAsStream("foo/bar.xml");
java 标准库中有这样的类加载器吗?
是的,在 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 数组。但我认为这很容易。我把它留作练习 :)
如何为目录列表实现类加载器作为类路径?例如,
public class MyClassLoader extends ClassLoader {
private List<String> directories;
...
}
在目录下搜索类和资源。
Class.forName("mypackage.Foo", myClassLoader);
myClassLoader.getResourceAsStream("foo/bar.xml");
java 标准库中有这样的类加载器吗?
是的,在 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 数组。但我认为这很容易。我把它留作练习 :)