gpt4 book ai didi

Java URLClassLoader : select which classes to import

转载 作者:行者123 更新时间:2023-12-01 14:10:40 29 4
gpt4 key购买 nike

目前我正在使用此行加载第 3 方 JAR 并将其包/类添加到我的程序中

URL [] urls = new URL [] { "http://..." };
new URLClassLoader(urls);

这种方法的问题是整个 JAR 都被加载,这意味着所有包和所有类都被导入。我如何告诉 URLClassLoaded 仅加载几个选定的类?

一个例子是这样的 JAR 层次结构

  • 套餐A
    • 1 级
    • 2 级
  • 套餐B
    • 1 级
    • 2 级
    • 3 级
    • 4 级

我想做一些类似“仅导入 A.* 和 B.class2”的操作

最佳答案

提供 ClassLoader 的自定义实现

重写类加载器的 findClass() 方法并应用业务逻辑来选择要加载的类。

class CustomClassLoader extends ClassLoader {

public Class findClass(String name) {
if(shouldBeLoaded)
return defineClass(name, b, 0, b.length);
}
}

将其设置为加载的默认类加载器(可选)

java -Djava.system.class.loader
=com.test.CustomClassLoader

关于Java URLClassLoader : select which classes to import,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18549412/

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