繁体   English   中英

如何为目录列表实现 ClassLoader 作为类路径?

[英]how to implement ClassLoader for a list of directories as classpath?

如何为目录列表实现 ClassLoader 作为类路径? 例如,

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 数组。 但我认为这很容易。 我把它作为练习:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM