Учебники о javaagents

Я хотел бы узнать кое-что о javaagents, но исследование не легкое. Большая часть результата относится к JADE, Я знаю, что Java-агент может означать две вещи:

  1. Агент, запрограммированный на Java, является воплощением концепции агента распределенных систем.
  2. Низкоуровневый программный компонент для улучшения работы JVM, такой как профилировщики, инструменты покрытия кода и т. Д.

Я нашел подобный вопрос здесь, но, к сожалению, он также относится к версии 1.

Знаете ли вы какие-либо статьи, учебные пособия для начинающих, пример проекта о javaagent в версии 2? Я нашел один здесь, но я ищу больше.

2 ответа

Решение

Во втором случае рассказывается о Java Instrumentation API - эта ссылка указывает на Javadoc, который довольно описательный.

И вот, полная инструкция и пример того, как создать агент инструментов Java.

Основная концепция заключается в:

  1. Реализовать статический premain (как аналогия с main) метод, как это:

    import java.lang.instrument.Instrumentation;
    
    class Example {
        public static void premain(String args, Instrumentation inst) {
            ...
        }
    }
    
  2. Создайте файл манифеста (скажем, manifest.txt) маркировка этого класса для предварительного основного исполнения. Его содержимое:

    Premain-Class: Example
    
  3. Скомпилируйте класс и упакуйте этот класс в JAR архив:

    javac Example.java
    jar cmf manifest.txt yourAwesomeAgent.jar *.class
    
  4. Выполните свою JVM с -javaagent параметр, как это:

    java -javaagent:yourAwesomeAgent.jar -jar yourApp.jar
    
Другие вопросы по тегам