我用的是哈维。这是我的密码:
public class JavaAgent {
public static void premain(String args, Instrumentation inst) {
inst.addTransformer((ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) -> {
if(className.endsWith("javafx/stage/Stage")) {
System.out.println(1);
ClassPool classPool = ClassPool.getDefault();
System.out.println(2);
}
return null;
});
}
}我发现有一种奇怪的情况,我的输出是:
1
为什么?
编辑:
当然,这不是一个例外问题,我添加了捕手器,如下所示:
if(className.endsWith("javafx/stage/Stage")) {
try {
System.out.println(1);
ClassPool classPool = ClassPool.getDefault();
System.out.println(2);
} catch (Exception e) {
System.out.println("EX!");
}
}产量仍然是一样的。
发布于 2018-04-02 20:11:58
问题解决了。我忘记复制JavaAgent的lib文件夹以及JavaAgent.jar。
奇怪的是,没有例外信息,除非我声明
ClassPool classPool = ClassPool.getDefault();外部premain()函数
https://stackoverflow.com/questions/49614131
复制相似问题