目前我正在使用此行加载第三方JAR并将其包/类添加到我的程序
URL [] urls = new URL [] { "http://..." };
new URLClassLoader(urls);
我使用这种方法的问题是加载了整个JAR,这意味着导入了所有包和所有类。 如何告诉URLClassLoaded只加载几个选定的类?
一个例子就是像这样的JAR层次结构
我想做的事情就像“仅导入A. *和B.class2”
答案 0 :(得分:1)
提供 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