複数の Java エージェントを使用して Java プログラムを起動するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/872657

  •  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 の詳細については、

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top