Je sais comment démarrer un programme Java avec un agent Java:
Java -javaagent:myAgent.jar MyJavaProgram
Mais que faire si je veux ajouter 2 agents Java ou plus pour instrumenter mon programme? Je ne veux pas réinvoquer Java -javaagent: ... pour chaque agent que je dois charger dans la machine virtuelle Java.
J'ai essayé quelque chose comme ça:
Java -javaagent:agentA.jar, agentB.jar MyJavaProgram
ou quelque chose comme ça:
Java -javaagent:agentA.jar agentB.jar MyJavaProgram
Mais pas de succès.
Y a-t-il une réponse pour résoudre mon problème?
Je vous remercie.
que diriez-vous de deux paramètres de javaagent
Java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
Il semblerait que vous puissiez le faire en utilisant plusieurs arguments. De la documentation :
Sur les implémentations avec une interface de ligne de commande, un agent est démarré en ajoutant cette option à la ligne de commande:
-javaagent:jarpath[=options]
jarpath est le chemin d'accès au fichier JAR de l'agent. options est les options de l'agent. Ce commutateur peut être utilisé plusieurs fois sur la même ligne de commande, créant ainsi plusieurs agents. Plusieurs agents peuvent utiliser le même chemin d'accès. Un fichier JAR d'agent doit être conforme à la spécification du fichier JAR.
(mon emphase)
En ajoutant aux réponses ci-dessus, si vous utilisez ant et souhaitez inclure <jvmargs />
avec plus d'un fichier jar à -javaagent
pour démarrer le serveur, voici comment je l'ai fait,
build.xml
<target name="blah">
...
<jvmarg value="-javaagent:${jar1.path}" />
<jvmarg value="-javaagent:${jar2.path}" />
...
</target>
Un nouveau projet a pour objectif de prendre en charge plusieurs agents Java. Actuellement, il est limité à des spécifiques.
Agent Bond est un super agent, qui enveloppe et expédie plusieurs autres agents. Ainsi, vous ne devez installer qu'un seul agent dans votre machine virtuelle Java avec un seul ensemble de données de configuration (qui contient plusieurs parties distinctes).
Voir https://github.com/fabric8io/agent-bond/blob/master/README.md pour plus de détails.