Java progam with a Java agent:
Java -javaagent:myAgent.jar MyJavaProgram
しかし、2つ以上のJavaエージェントを追加してプログラムをインスツルメントしたい場合はどうすればよいですか?Java -javaagent:... for JVMにロードする必要があるすべてのエージェント。
私はこのようなことを試しました:
Java -javaagent:agentA.jar, agentB.jar MyJavaProgram
またはこのようなもの:
Java -javaagent:agentA.jar agentB.jar MyJavaProgram
しかし、成功していません。
私の問題を解決する答えはありますか?
ありがとうございました。
2つのjavaagentパラメータはどうですか
Java -javaagent:agentA.jar -javaagent:agentB.jar MyJavaProgram
複数の引数を使用してこれを行うことができるようです。 ドキュメント から:
コマンドラインインターフェイスを使用した実装では、コマンドラインに次のオプションを追加することにより、エージェントが開始されます。
-javaagent:jarpath[=options]
jarpathは、エージェントJARファイルへのパスです。 optionsはエージェントのオプションです。 このスイッチは、同じコマンドラインで複数回使用できるため、複数のエージェントを作成できます。複数のエージェントが同じjarpathを使用する場合があります。エージェントJARファイルは、JARファイルの仕様に準拠する必要があります。
(私の強調)
上記の答えに加えて、antを使用しており、<jvmargs />
を複数のjarとともに-javaagent
に含めてサーバーを起動する場合は、次のようにします。
build.xml
<target name="blah">
...
<jvmarg value="-javaagent:${jar1.path}" />
<jvmarg value="-javaagent:${jar2.path}" />
...
</target>
複数のJavaエージェントをサポートすることを目標とする新しいプロジェクトがあります。現在は特定のものに制限されています。
エージェントボンドはスーパーエージェントであり、他の複数のエージェントをラップしてディスパッチします。そうすれば、単一の設定データ(複数の個別の部分を含む)を使用してJVM内に単一のエージェントをインストールするだけで済みます。
詳細については、 https://github.com/fabric8io/agent-bond/blob/master/README.md を参照してください