Javaagentについて何かを学びたいのですが、研究は簡単ではありません。結果のほとんどはJADE
を参照しています。 Javaエージェントは2つのことを意味します:
同様の質問 here を見つけましたが、残念ながらバージョン1についても言及しています。
バージョン2のjavaagentに関する記事、初心者向けチュートリアル、サンプルプロジェクトを知っていますか?私は1つを見つけました ここで しかし、私はもっと探しています。
2番目のケースでは、 Java Instrumentation API について話します。このリンクは、説明的なJavadocを指します。
そして、ここに完全な指示と Java Instrumentation agent の作成方法の例があります。
主な概念は次のとおりです。
次のように、静的premain
(main
の類推として)メソッドを実装します。
import Java.lang.instrument.Instrumentation;
class Example {
public static void premain(String args, Instrumentation inst) {
...
}
}
プレメイン実行用にこのクラスをマークするマニフェストファイル(たとえば、manifest.txt
)を作成します。その内容は次のとおりです。
Premain-Class: Example
クラスをコンパイルし、このクラスをJAR
アーカイブにパッケージ化します。
javac Example.Java
jar cmf manifest.txt yourAwesomeAgent.jar *.class
次のように、-javaagent
パラメーターを使用してJVMを実行します。
Java -javaagent:yourAwesomeAgent.jar -jar yourApp.jar
ポイント#2で説明されているように、javaagentに役立つリソースはほとんどありません。