web-dev-qa-db-fra.com

Comment démarrer mon programme Java avec plusieurs agents Java?

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.

65
Flueras Bogdan

que diriez-vous de deux paramètres de javaagent

Java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
113
Tahir Akhtar

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)

51
Brian Agnew

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>
2
Lucky

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.

0
Marged