Как запустить программу Java с несколькими агентами Java?
-
22-08-2019 - |
Вопрос
Я знаю, как запустить Java-программу с помощью Java-агента:
java -javaagent:myAgent.jar MyJavaProgram
Но что, если я захочу добавить два или более Java-агента для оснащения своей программы?Я не хочу повторно вызывать java -javaagent:...для каждого агента, который мне нужно загрузить в JVM.
Я пробовал что-то вроде этого:
java -javaagent:agentA.jar, agentB.jar MyJavaProgram
или что-то вроде этого:
java -javaagent:agentA.jar agentB.jar MyJavaProgram
Но успеха не имеют.
Есть ли ответ на мою проблему?
Спасибо.
Решение
как насчет двух параметров javaagent
java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
Другие советы
Казалось бы, вы можете сделать это, используя несколько аргументов.Из документация:
В реализациях с интерфейсом командной строки агент запускается путем добавления этой опции в командную строку:
-javaagent:jarpath[=options]
тропа — путь к JAR-файлу агента. параметры это параметры агента. Этот переключатель можно использовать несколько раз в одной и той же командной строке, создавая таким образом несколько агентов..Один и тот же jarpath может использовать более одного агента.Файл JAR агента должен соответствовать спецификации файла JAR.
(мой акцент)
Добавляя к приведенным выше ответам, если вы используете ant и хотите включить <jvmargs />
с более чем одной банкой для -javaagent
чтобы запустить сервер, вот как я это сделал,
build.xml
<target name="blah">
...
<jvmarg value="-javaagent:${jar1.path}" />
<jvmarg value="-javaagent:${jar2.path}" />
...
</target>
Существует новый проект, целью которого является поддержка нескольких агентов Java.В настоящее время оно ограничено конкретными.
Агент Бонд — суперагент, который объединяет и распределяет действия нескольких других агентов.Таким образом, вам нужно будет установить только один агент в вашей JVM с одним набором данных конфигурации (который содержит несколько отдельных частей).
Видеть https://github.com/fabric8io/agent-bond/blob/master/README.md для подробностей