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