Jak uruchomić program Java z więcej niż jednym agentem Java?

82

Wiem, jak uruchomić program Java za pomocą agenta Java:

java -javaagent:myAgent.jar MyJavaProgram

Ale co, jeśli chcę dodać 2 lub więcej agentów Java do instrumentu? Nie chcę ponownie wywoływać java -javaagent: ... dla każdego agenta, którego muszę załadować w JVM.

Próbowałem czegoś takiego:

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

lub coś w tym stylu:

java -javaagent:agentA.jar agentB.jar MyJavaProgram

Ale bez sukcesu.

Czy istnieje odpowiedź na mój problem?

Dziękuję Ci.

Flueras Bogdan
źródło

Odpowiedzi:

143

A co z dwoma javaagentparametrami?

java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
Tahir Akhtar
źródło
57

Wydaje się, że możesz to zrobić, używając wielu argumentów. Z dokumentacji :

W implementacjach z interfejsem wiersza poleceń agent jest uruchamiany przez dodanie tej opcji do wiersza poleceń:

-javaagent:jarpath[=options] 

jarpath to ścieżka do pliku JAR agenta. opcje to opcje agenta. Ten przełącznik może być używany wiele razy w tym samym wierszu komend, tworząc w ten sposób wielu agentów . Więcej niż jeden agent może używać tej samej ścieżki jarpath. Plik JAR agenta musi być zgodny ze specyfikacją pliku JAR.

(moje podkreślenie)

Brian Agnew
źródło
2

Dodając do powyższych odpowiedzi, jeśli używasz ant i chcesz dołączyć <jvmargs />więcej niż jeden jar, -javaagentaby uruchomić serwer, oto jak to zrobiłem,

build.xml

<target name="blah">
...
    <jvmarg value="-javaagent:${jar1.path}" />
    <jvmarg value="-javaagent:${jar2.path}" />
...
</target>
Szczęściarz
źródło
1

Jest nowy projekt, którego celem jest obsługa wielu agentów Java. Obecnie ogranicza się do konkretnych.

Agent Bond jest super agentem, który zajmuje się kilkoma innymi agentami. W ten sposób wystarczy zainstalować tylko jednego agenta w swojej maszynie JVM z jednym zestawem danych konfiguracyjnych (który zawiera wiele oddzielnych części).

Szczegółowe informacje można znaleźć pod adresem https://github.com/fabric8io/agent-bond/blob/master/README.md

Marged
źródło