別の大きな Java プログラムのプラグインを作成しています。
実行時に Java プログラムの一部の Java メソッドの一部のバイト コードを変更して、メソッド呼び出しをインターセプトできるようにしたい (つまり、フック コードをメソッドに挿入する)。
これを達成する方法はありますか?
PS:
次のアプローチを確認しました。
1.Java プログラムのクラスローダを変更します。(変更できません)
2.Java プロキシを使用します。(Java プロキシは新しいプロキシ オブジェクトを作成するため、Java プロキシは使用できません。プロキシ オブジェクトは使用しません。Java プログラムのオブジェクトをフックする必要があり、そのオブジェクトを使用する必要があります)
3. -javaagent オプションを使用します (追加できません)。 Java プログラムのコマンドライン オプション)。
PS 詳細[再編集] :
私のクラスは ext クラス ローダーによってロードされました (JAVA_HOME\lib\ext フォルダーに jar ファイルを置きました)。大きな Java プログラムは、ブラウザによってロードされるアプレット プログラムです。ブラウザがアプレットを起動すると、クラスも読み込まれます。
PS more more [再編集] :
アプレットで実行されていますが。私は完全な許可を得ることができます。java.policy と java.security ファイルを変更できるためです。
ありがとう、
カルビン