Ich arbeite an javassist. Ich muss eine Methode bearbeiten. Alles funktioniert gut im Debug-Modus, aber wenn ich es ausgeführt habe, ist es nicht möglich, den aktualisierten Bytecode zu übernehmen. Ich habe keine Ahnung. Hier ist mein CodeJavassist arbeitet im Debug-Modus nicht im Lauf
CtClass classA = classPool.get("com.ClassA");
CtMethod sayHiMethod = classA.getDeclaredMethod("sayHi");
System.out.println("Going to pront");
sayHiMethod.insertBefore("{ System.out.println(\"popload\");}");
classA.writeFile();
Class c = classLoader.loadClass("com.ClassA");
Method m = c.getDeclaredMethod("sayHi");
Object obj = m.invoke(c);
Ja, es ist eine gute Idee, aber ich kann keinen Agenten einschließen. Es ist nicht akzeptabel. –