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

问题描述 投票:0回答:1

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

public class MyClassLoader extends ClassLoader {

    private List<String> directories;

    ...
}

在目录下搜索类和资源。

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

Java标准库中是否有这样的类加载器?

java classloader
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.