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