1

誰もが知っているJrebel。しかし、私はいくつかの小さな同様の実装を作りたかったのです - 再コンパイル後にクラス定義をリロードできる機能だけです。

クラスを監視するJavaエージェントを作りました。また、すべてのカスタム クラスをロードするシステム クラスローダーを指定します。再コンパイル後、エージェントは新しい定義でクラスをリロードする必要があります。しかし、何も起こりません。

また、Javaエージェント内でインストルメンテーションAPIを使用しようとしました:

instrumentation.redefineClasses

また

instrumentation.retransformClasses

しかし、それは役に立ちません。

すべてのソース ファイルはここにあります - https://github.com/ice-pro/Runtime-Redeploy

テストを実行するには、メイン モジュールで「インストール」を実行してから、テスター モジュールで「コンパイル」を実行してください。

実行時にクラス宣言を再定義する方法を教えてください。

4

0 に答える 0