getDefault();在Javassist中不执行任何操作 public byte[]转换(类加载器、字符串类名称、类clazz、, ProtectionDomain域,字节[]字节) 抛出IllegalClassFormatException{ 返回inspectClass(类名、类别、字节); } 专用字节[]检查类(字符串名称,类类别,字节[]b){ System.out.println(“这里”);//好的,我看到这个打印 ClassPool=ClassPool.getDefault(); System.out.println(“inclass”);//看不到它!! }

getDefault();在Javassist中不执行任何操作 public byte[]转换(类加载器、字符串类名称、类clazz、, ProtectionDomain域,字节[]字节) 抛出IllegalClassFormatException{ 返回inspectClass(类名、类别、字节); } 专用字节[]检查类(字符串名称,类类别,字节[]b){ System.out.println(“这里”);//好的,我看到这个打印 ClassPool=ClassPool.getDefault(); System.out.println(“inclass”);//看不到它!! },java,javassist,Java,Javassist,在ClassPool.getDefault()中会发生什么 我也遇到了同样的问题,发现ClassPool.getDefault没有引发异常,而是可以抛出。 事实上,它抛出了java.lang.NoClassDefFoundError。 在我的清单中,我有: public byte[] transform(ClassLoader loader, String className, Class<?> clazz, ProtectionDomain domain,

ClassPool.getDefault()中会发生什么

我也遇到了同样的问题,发现ClassPool.getDefault没有引发异常,而是可以抛出。 事实上,它抛出了java.lang.NoClassDefFoundError。 在我的清单中,我有:

public byte[] transform(ClassLoader loader, String className, Class<?> clazz,
            ProtectionDomain domain, byte[] bytes)
    throws IllegalClassFormatException {
        return inspectClass(className, clazz, bytes);
}

private byte[] inspectClass(String name, Class<?> clazz, byte[] b) {
        System.out.println("here"); //OK I see this print
        ClassPool pool = ClassPool.getDefault();
        System.out.println("inclass"); //can't see it !!
}
您可能只需要将引导类路径指向javassist.jar文件。 在我的例子中,对于上面的引导类路径,我需要一个包含javassist.jar的lib目录

我最初犯的错误是将javassist.jar放在代理jar文件中 (以下内容不正确,仅用于演示目的):


我没有将javassist.jar放在代理jar文件中,而是将其放在程序可访问的外部目录中。在那次改变之后,它运行得很好。

你看到任何异常吗?@thomashrig no:(非常奇怪,我会变得疯狂-当我删除printLn时,我可以看到异常…添加引导类路径选项仍然会给我相同的错误。在执行jar时添加这个
-Xbootclasspath/a:javassist-3.20.0-GA.jar
为我解决了问题。
Premain-Class: timing.TimingTransform
Boot-Class-Path: lib/javassist.jar
     0 Mon Oct 24 16:58:14 MST 2011 META-INF/
   146 Mon Oct 24 16:58:14 MST 2011 META-INF/MANIFEST.MF
     0 Thu Oct 20 14:58:06 MST 2011 timing/
  2482 Mon Oct 24 16:58:06 MST 2011 timing/TimingStats.class
  8360 Mon Oct 24 16:58:06 MST 2011 timing/TimingTransform.class
     0 Tue Oct 18 17:28:24 MST 2011 lib/
645252 Fri Jul 08 18:24:58 MST 2011 lib/javassist.jar