gpt4 book ai didi

java - 设置类加载器不同的目录

转载 作者:行者123 更新时间:2023-12-01 14:19:41 25 4
gpt4 key购买 nike

我搜索了一些主题,但找不到答案。我需要的只是为默认类加载器设置一个附加路径。

现在我有这样的类(class):

public class Loader extends ClassLoader {

public void setPath(String s) {
File file = new File(s);
try {
URL classUrl = file.toURI().toURL();
URL[] urls = new URL[]{classUrl};
ClassLoader ucl = new URLClassLoader(urls);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}

我需要使 setPath 方法以这种方式工作:

Loader load = new Loader();
load.setPath(directoryName);
Class clazz = (ClassLoader) load.loadClass(className);

有人可以帮助我实现这一目标吗?谢谢。

最佳答案

为什么不直接创建一个新方法来从特定路径加载类呢?不要忘记在 URL 类加载器上设置父类,否则它将无法从 JDK 加载依赖类。

public class Loader {
public Object loadClass(String path, String classname) {
File file = new File(path);
try {
URL classUrl = file.toURI().toURL();
URL[] urls = new URL[]{classUrl};
ClassLoader ucl = new URLClassLoader(urls, getClass().getClassLoader());
return ucl.loadClass(classname);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}

关于java - 设置类加载器不同的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17724481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com