Как мне запустить свою программу Java с более чем одним агентом Java?

82

Я знаю, как запустить Java-программу с помощью Java-агента:

java -javaagent:myAgent.jar MyJavaProgram

Но что, если я хочу добавить 2 или более Java-агентов для инструментария моей программы? Я не хочу повторно вызывать java -javaagent: ... для каждого агента, который мне нужно загрузить в JVM.

Я пробовал что-то вроде этого:

java -javaagent:agentA.jar, agentB.jar MyJavaProgram

или что-то вроде этого:

java -javaagent:agentA.jar agentB.jar MyJavaProgram

Но безуспешно.

Есть ли ответ для решения моей проблемы?

Спасибо.

Флуерас Богдан
источник

Ответы:

143

Как насчет двух javaagentпараметров?

java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
Тахир Ахтар
источник
57

Казалось бы, вы можете сделать это, используя несколько аргументов. Из документации :

В реализациях с интерфейсом командной строки агент запускается путем добавления этой опции в командную строку:

-javaagent:jarpath[=options] 

jarpath - это путь к JAR-файлу агента. options - это параметры агента. Этот переключатель можно использовать несколько раз в одной командной строке, создавая таким образом несколько агентов . Один и тот же путь к jarpath могут использовать несколько агентов. Файл JAR агента должен соответствовать спецификации файла JAR.

(мой акцент)

Брайан Агнью
источник
2

Добавляя к приведенным выше ответам, если вы используете ant и хотите включить <jvmargs />более одной банки -javaagentдля запуска сервера, вот как я это сделал,

build.xml

<target name="blah">
...
    <jvmarg value="-javaagent:${jar1.path}" />
    <jvmarg value="-javaagent:${jar2.path}" />
...
</target>
Счастливый
источник
1

Есть новый проект с целью поддержки нескольких агентов Java. В настоящее время это ограничено конкретными.

Агент Бонд - это суперагент, который упаковывает и отправляет несколько других агентов. Таким образом, вам нужно установить только один агент в вашей JVM с одним набором данных конфигурации (который содержит несколько отдельных частей).

См https://github.com/fabric8io/agent-bond/blob/master/README.md подробности

Маржа
источник