每个人都知道Jrebel。但我想做一些类似的小实现 - 只是一个允许在重新编译后重新加载类定义的功能。
我创建了监视类的java代理。我还指定了加载所有自定义类的系统类加载器。在重新编译之后,我的代理应该使用新定义重新加载类。但没有任何反应。
此外,我尝试在我的java代理中使用instrumentation API:
instrumentation.redefineClasses
或
instrumentation.retransformClasses
但它没有帮助。
所有源文件都可以在此处找到 - https://github.com/ice-pro/Runtime-Redeploy
要运行测试,请执行'安装'在主模块上,然后编译'在Tester模块上。
请告诉我如何在运行时重新定义类声明。