Как запустить программу Java с несколькими агентами java?


Я знаю, как запустить 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

но не имеют успеха.

есть ответ, чтобы решить мою проблему ?

спасибо вы.

4 61

4 ответа:

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

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

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

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

-javaagent:jarpath[=options] 

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

(Курсив мой)

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

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