Я пытаюсь воссоздать поведение, описанное в Уилла blog post но получить следующее исключение на попытке запустить его с помощью:Исключение при вызове из Java агента инструментальными через ByteBuddy
$ java -javaagent:agent/target/securityfixer-agent-1.0-SNAPSHOT.jar=bootstrap/target/securityfixer-bootstrap-1.0-SNAPSHOT.jar -jar example/target/securi
tyfixer-example-1.0-SNAPSHOT.jar
Exception in thread "main" java.lang.NoClassDefFoundError: net/bytebuddy/implementation/Implementation$Context$Factory
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethod(Unknown Source)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: net.bytebuddy.implementation.Implementation$Context$Factory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more
FATAL ERROR in native method: processing of -javaagent failed
structure является таким, как описано в Блог Уилла - 3 отдельных банки, один с агентом, один с перехватчиком и один с основным классом.
Я также попытался запустить его как исполняемый банку, добавляя строфу MainClass в манифест securityfixer-примера, но это, кажется, в обход приборов в целом:
$ java -jar example/target/securityfixer-example-1.0-SNAPSHOT.jar -javaagent:agent/target/securityfixer-agent-1.0-SNAPSHOT.jar=bootstrap/target/securityfixer-bootstrap-1.0-SNAPSHOT.jar
Security manager is set!
ATTACK SUCCEEDED: Security manager was reset!
Что я мог не быть здесь? Заранее спасибо.
Просто FYI для тех, кто сталкивается с этим, обязательно используйте Byte Buddy версии 1.4.1 или более ранней версии. Начиная с 1.4.2 он больше не работает ... все еще пытается отследить, почему! –
Какая ошибка вы получаете с ver. 1.4.2? –