Учебники о javaagents
Я хотел бы узнать кое-что о javaagents, но исследование не легкое. Большая часть результата относится к JADE
, Я знаю, что Java-агент может означать две вещи:
- Агент, запрограммированный на Java, является воплощением концепции агента распределенных систем.
- Низкоуровневый программный компонент для улучшения работы JVM, такой как профилировщики, инструменты покрытия кода и т. Д.
Я нашел подобный вопрос здесь, но, к сожалению, он также относится к версии 1.
Знаете ли вы какие-либо статьи, учебные пособия для начинающих, пример проекта о javaagent в версии 2? Я нашел один здесь, но я ищу больше.
2 ответа
Во втором случае рассказывается о Java Instrumentation API - эта ссылка указывает на Javadoc, который довольно описательный.
И вот, полная инструкция и пример того, как создать агент инструментов Java.
Основная концепция заключается в:
Реализовать статический
premain
(как аналогия сmain
) метод, как это:import java.lang.instrument.Instrumentation; class Example { public static void premain(String args, Instrumentation inst) { ... } }
Создайте файл манифеста (скажем,
manifest.txt
) маркировка этого класса для предварительного основного исполнения. Его содержимое:Premain-Class: Example
Скомпилируйте класс и упакуйте этот класс в
JAR
архив:javac Example.java jar cmf manifest.txt yourAwesomeAgent.jar *.class
Выполните свою JVM с
-javaagent
параметр, как это:java -javaagent:yourAwesomeAgent.jar -jar yourApp.jar
Несколько полезных ресурсов для javaagent, как описано в пункте № 2.