web-dev-qa-db-ja.com

javaagentに関するチュートリアル

Javaagentについて何かを学びたいのですが、研究は簡単ではありません。結果のほとんどはJADEを参照しています。 Javaエージェントは2つのことを意味します:

  1. Javaでプログラミングされたエージェントは、分散システムのエージェント概念の化身です。
  2. プロファイラー、コードカバレッジツールなど、JVMの動作を強化する低レベルのソフトウェアコンポーネント

同様の質問 here を見つけましたが、残念ながらバージョン1についても言及しています。

バージョン2のjavaagentに関する記事、初心者向けチュートリアル、サンプルプロジェクトを知っていますか?私は1つを見つけました ここで しかし、私はもっと探しています。

52
alicjasalamon

2番目のケースでは、 Java Instrumentation API について話します。このリンクは、説明的なJavadocを指します。

そして、ここに完全な指示と Java Instrumentation agent の作成方法の例があります。

主な概念は次のとおりです。

  1. 次のように、静的premainmainの類推として)メソッドを実装します。

    import Java.lang.instrument.Instrumentation;
    
    class Example {
        public static void premain(String args, Instrumentation inst) {
            ...
        }
    }
    
  2. プレメイン実行用にこのクラスをマークするマニフェストファイル(たとえば、manifest.txt)を作成します。その内容は次のとおりです。

    Premain-Class: Example
    
  3. クラスをコンパイルし、このクラスをJARアーカイブにパッケージ化します。

    javac Example.Java
    jar cmf manifest.txt yourAwesomeAgent.jar *.class
    
  4. 次のように、-javaagentパラメーターを使用してJVMを実行します。

    Java -javaagent:yourAwesomeAgent.jar -jar yourApp.jar
    
76
npe

ポイント#2で説明されているように、javaagentに役立つリソースはほとんどありません。

4
devmake