3

-javagent を介して実行される私の javaagent は、私のクラスの 1 つの静的メソッドへのコールバックをクラスにインスツルメントします。これは、メソッドが (INVOKESTATIC を使用して) 呼び出された時点で ClassDefNotFounderror をスローするシステム クラス (java/lang、java/util など) を除いて、うまく機能します。したがって、メソッド呼び出しが試行されているため、インストルメント化されているように見えますが、ユーザー クラスにはないアクセスまたは可視性の問題があります。私のコールバック クラスとそのメソッドはすべてパブリックです。

クラスをクラスパスに追加しようとしましたが (-javaagent を介してロードするのではなく)、それは役に立ちませんでした。オーバーライドする必要があるシステム クラスの保護はありますか?

4

1 に答える 1

0

インスツルメントするクラスを明示的に探しているようです。java.lang.instrumentターゲット JVM の実行時にロードされているクラスをインターセプトするために使用しないのはなぜですか? この例を参照してください

あなたのコード、または関連する部分を貼り付けることができますか?

于 2012-04-22T05:01:10.363 に答える