URL[] urls = new URL[6];
urls[0] = '/activation-1.1.1.jar'
urls[1] = '/animal-sniffer-annotations-1.14.jar'
urls[2] = '/annotations-16.0.2.jar'
urls[3] = '/antlr-runtime-3.4.jar'
urls[4] = '/asm-4.2.jar'
urls[5] = '/cglib-3.1.jar'
URLClassLoader urlCLassLoader = new URLClassLoader(urls);
try
{
// 将全部存储到 urlclassload 里面
for (String fullClassName : allFullClassNames)
{
if (!"module-info".equals(fullClassName))
{
Class<?> clazz = urlCLassLoader.loadClass(fullClassName);
System.out.println(fullClassName);
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
https://paste.ubuntu.org.cn/4545513
net.sf.cglib.transform.AbstractClassTransformer
反编译代码//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package net.sf.cglib.transform;
import org.objectweb.asm.ClassVisitor;
public abstract class AbstractClassTransformer extends ClassTransformer {
protected AbstractClassTransformer() {
super(262144);
}
public void setTarget(ClassVisitor target) {
this.cv = target;
}
}
https://www.123pan.com/s/dCH9-LYAAA 提取码:v2ex
在Class<?> clazz = urlCLassLoader.loadClass("net.sf.cglib.transform.AbstractClassTransformer"); 小弟进入断点后看到这行执行会报错 java.lang.NoClassDefFoundError: org/apache/tools/ant/Task
这个 NoClassDefFoundError 报错的问题,我在<深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第 3 版)周志明>中找到了原因 大概是 类加载过程解析步骤 出现了 符号引用转为直接引用找不到的问题
但是还是有以下疑问
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.