每个人都知道杰瑞贝尔。但我想做一些类似的小实现——只是一个允许在重新编译后重新加载类定义的功能。
我制作了监控类的java代理。我还指定了加载所有自定义类的系统类加载器。重新编译后,我的代理应该用新定义重新加载类。但什么也没有发生。
我还尝试在我的 java 代理中使用检测 API:
instrumentation.redefineClasses
或者
instrumentation.retransformClasses
但这无济于事。
所有源文件都可以在这里找到 - https://github.com/ice-pro/Runtime-Redeploy
要运行测试,请在主模块上执行“安装”,然后在测试模块上执行“编译”。
请告诉我如何在运行时重新定义类声明。