我正在尝试使用
javassist加载一个特定的类,我正在做一个pre-main方法作为以下内容:
public byte[] transform(ClassLoader loader, String className, Class> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException
{
byte[] byteCode = classfileBuffer;
if(className.toLowerCase().endsWith("class1"))
{
ClassPool classPool = ClassPool.getDefault();
CtClass ctClass = classPool.get("com.class2");
}
}
但不幸的是,我得到一个NotFoundException ….
com.class2是一个类,它将在加载class1之后由类加载器加载,但是我没有为class1添加一个类型为com.class2的返回类型的新方法
我尝试在stackoverflow.com中的所有解决方案,但没有任何结果…..
最后,class1和class2都在相同的包中,并且在同一个JAR文件中,class1具有类型为class2的成员,但我不知道为什么这个类别不能加载第二个.
堆栈跟踪在这里:
Exception: javassist.NotFoundException: com.Class2
javassist.NotFoundException: com.Class