Como faço para iniciar meu programa Java com mais de um agente de java?
-
22-08-2019 - |
Pergunta
Eu estou ciente de como iniciar um progama java com um agente de java:
java -javaagent:myAgent.jar MyJavaProgram
Mas o que se eu quiser adicionar 2 ou mais agentes Java para instrumento meu programa? Eu não quero reinvoke o java -javaagent:. ... para cada agente tenho de carga na JVM
Eu tentei algo como isto:
java -javaagent:agentA.jar, agentB.jar MyJavaProgram
ou algo como isto:
java -javaagent:agentA.jar agentB.jar MyJavaProgram
Mas não têm sucesso.
Existe uma resposta para resolver o meu problema?
Obrigado.
Solução
Como cerca de dois parâmetros javaagent
java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
Outras dicas
Parece que você pode fazer isso usando vários argumentos. Do documentação :
Em implementações com uma interface de linha de comando, um agente é iniciado adicionando esta opção de linha de comando:
-javaagent:jarpath[=options]
jarpath é o caminho para o arquivo agente JAR. Opções é o agente opções. Esta opção pode ser usada várias vezes na mesma linha de comando, criando assim múltiplos agentes . Mais do que um agente pode usar o mesmo jarpath. Um arquivo JAR agente deve estar de acordo com a especificação do arquivo JAR.
(o sublinhado é meu)
Somando-se as respostas acima, se você estiver usando formiga e deseja incluir <jvmargs />
com mais de um frasco para -javaagent
para iniciar o servidor, aqui está como eu fiz isso,
build.xml
<target name="blah">
...
<jvmarg value="-javaagent:${jar1.path}" />
<jvmarg value="-javaagent:${jar2.path}" />
...
</target>
Há um novo projeto com o objetivo de suportar múltiplos agentes Java. Atualmente ele é limitado a aqueles específicos.
Agente Bond é um agente super, que envolve e despachos em vários outros agentes. Dessa forma, você só tem que instalar um único agente dentro de sua JVM com um único conjunto de dados de configuração (que contém várias partes separadas).
https://github.com/fabric8io/agent- Bond / blob / master / README.md para mais detalhes