システムビヘイビア(FileInputStream/FileOutputStream)にカスタムビヘイビアを追加しようとしています。私はこの方法を変革以下でカスタムClassFileTransformerを書いた:Javaシステムクラスをインストルメントする方法は?
public byte[] transform(ClassLoader arg0, String arg1, Class arg2, ProtectionDomain arg3, byte[] arg4) throws IllegalClassFormatException {
System.out.println("class name: " + arg1);
return arg4;
}
私はサンプルプログラムを実行すると:
public static void main(String[] args) throws Exception {
new FileOutputStream("file");
}
を私はシステムクラスを変換するために渡されていないされていないことがわかります。
システムクラスを変更する方法はありますか?前もって感謝します!
私は、プロファイラのような多くのツールがこの振舞いに依存しているので、システムクラスが渡されると期待しています。 –
多くのツールの問題を避けるために、いくつかのClassFileTransformerを追加することができます。クラスを変換する方法については、スタンドアート/ガイドライン/推奨事項があります。 – dernasherbrezon