3

rt.jar でクラスを変更する際の制限は何ですか。これは一般に、JRE のバージョンとベンダーに固有のものであることを認識しています。たとえば、Sun 1.6 VM の Hotspot は、フィールドを java.lang.Object に追加すると、Object のサイズに関する前提がハードコーディングされているため、気に入らないことがわかりました。ただし、rt.jar 内のクラスの重要な部分を変更すると、jar 内に確実にあるクラスに対して、実行時に偽の ClassNotFoundErrors が発生します。rt.jar をその場で変更するだけでなく、さまざまな -Xbootclasspath パラメーターで置き換えようとしました。

この種のドキュメントを探す場所がよくわかりません。たとえば、OpenJDK ドキュメントには何も見つかりません。

4

1 に答える 1

1

目的を達成するために、バイト コード インストルメンテーション ライブラリを使用することを検討しましたか? JDK が 5.0 以上の場合は、ASM + java.lang.instrumentを使用できます。

于 2009-10-05T17:29:52.260 に答える