¿Cómo inicio mi programa Java con más de un agente Java?


81

Soy consciente de cómo iniciar un programa de Java con un agente de Java:

java -javaagent:myAgent.jar MyJavaProgram

Pero, ¿qué pasa si quiero agregar 2 o más agentes de Java para instrumentar mi programa? No quiero volver a invocar java -javaagent: ... para cada agente que tengo que cargar en JVM.

Intenté algo como esto:

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

o algo como esto:

java -javaagent:agentA.jar agentB.jar MyJavaProgram

Pero no tenga éxito.

¿Existe una respuesta para resolver mi problema?

Gracias.

Respuestas:


142

¿Qué tal dos javaagentparámetros?

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

56

Parece que puedes hacer esto usando múltiples argumentos. De la documentación :

En implementaciones con una interfaz de línea de comandos, un agente se inicia agregando esta opción a la línea de comandos:

-javaagent:jarpath[=options] 

jarpath es la ruta al archivo JAR del agente. opciones son las opciones del agente. Este modificador se puede usar varias veces en la misma línea de comandos, creando así múltiples agentes . Más de un agente puede utilizar el mismo jarpath. Un archivo JAR de agente debe cumplir con la especificación de archivo JAR.

(mi énfasis)


2

Agregando a las respuestas anteriores, si está usando ant y desea incluir <jvmargs />con más de un jar -javaagentpara iniciar el servidor, así es como lo hice,

build.xml

<target name="blah">
...
    <jvmarg value="-javaagent:${jar1.path}" />
    <jvmarg value="-javaagent:${jar2.path}" />
...
</target>

1

Hay un nuevo proyecto con el objetivo de admitir varios agentes Java. Actualmente se limita a específicos.

El agente Bond es un súper agente, que envuelve y envía a varios otros agentes. De esa manera, solo tiene que instalar un único agente dentro de su JVM con un solo conjunto de datos de configuración (que contiene múltiples partes separadas).

Consulte https://github.com/fabric8io/agent-bond/blob/master/README.md para obtener más detalles

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.