Как мне запустить свою программу 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

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

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

Спасибо.

Ответы:



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 подробности

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.