Ich versuche Aufrufe von JavaFX 'ScenePulseListener.pulse()
Methode mit ByteBuddy 1.4.26 abzufangen.Warum wird mein ByteBuddy Interceptor nicht aufgerufen?
Der folgende Code scheint richtig zu dieser Klasse und Verfahren zu verweisen, und die Methode Unterschrift des Interceptor scheint korrekt zu sein, wie bei Manipulationen, dass richtig Ausnahmen auslöst.
(installJavaFXPulseInterceptor()
wird aufgerufen, bevor die ScenePulseListener
Klasse geladen wird.)
Jedoch ist die Abfangjäger Methode nie aufgerufen, wenn ScenePulseListener.pulse()
ist: Was mache ich falsch?
Yup, 'installJavaFXPulseInterceptor()' wird direkt in der 'main (...)' -Methode aufgerufen (ich würde den Agentenweg lieber vermeiden, wenn ich kann), aber tatsächlich der Klassenlader, der den 'ScenePulseListener' lädt Klasse ist nicht das System eins, sondern die Erweiterung eins! Wenn ich ByteBuddy zwingen, alles mit dem Klassenlader zu tun, der lädt, z. 'javafx.application.Platform' (dessen Laden' 'ScenePulseListener' nicht geladen wird), sieht es so aus, als ob die Dinge weiter gehen, da ich am NoClassDefFoundError (PulseInterceptor) gelandet bin ... ;-) Lassen Sie uns das nach einem Gute Nacht ... Vielen Dank für Ihre Hilfe! –