複数の Java エージェントを使用して Java プログラムを起動するにはどうすればよいですか?
-
22-08-2019 - |
質問
Java エージェントを使用して Java プログラムを開始する方法はわかっています。
java -javaagent:myAgent.jar MyJavaProgram
しかし、プログラムを計測するために 2 つ以上の Java エージェントを追加したい場合はどうすればよいでしょうか?java -javaagent:... を再呼び出ししたくないです。すべてのエージェントを 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]
ジャーパス エージェント JAR ファイルへのパスです。 オプション エージェントのオプションです。 このスイッチは同じコマンドラインで複数回使用できるため、複数のエージェントが作成されます。. 。複数のエージェントが同じ jarpath を使用する場合があります。エージェント JAR ファイルは、JAR ファイル仕様に準拠している必要があります。
(私の強調)
ant を使用していて次のことを含めたい場合は、上記の回答に追加します。 <jvmargs />
複数の瓶を使って -javaagent
サーバーを起動するには、私がやった方法は次のとおりです。
ビルド.xml
<target name="blah">
...
<jvmarg value="-javaagent:${jar1.path}" />
<jvmarg value="-javaagent:${jar2.path}" />
...
</target>
複数のJavaエージェントをサポートする目的で、新しいプロジェクトがあります。現在、それは特定のものに限定されます。
エージェントボンドはラップや他のいくつかのエージェントにディスパッチスーパー剤です。そうすれば、あなただけの(複数の別々の部分が含まれています)のコンフィギュレーションデータの単一セットであなたのJVM内の単一のエージェントをインストールする必要があります。
https://github.com/fabric8io/agent-を参照してください。ボンド/ブロブ/マスター/ README.md の詳細については、