Java的。在运行时更改类声明

时间:2014-12-24 19:28:22

标签: java classloader javaagents redeploy

每个人都知道Jrebel。但我想做一些类似的小实现 - 只是一个允许在重新编译后重新加载类定义的功能。

我创建了监视类的java代理。我还指定了加载所有自定义类的系统类加载器。在重新编译之后,我的代理应该使用新定义重新加载类。但没有任何反应。

此外,我尝试在我的java代理中使用instrumentation API:

instrumentation.redefineClasses

instrumentation.retransformClasses

但它没有帮助。

所有源文件都可以在此处找到 - https://github.com/ice-pro/Runtime-Redeploy

要运行测试,请执行'安装'在主模块上,然后编译'在Tester模块上。

请告诉我如何在运行时重新定义类声明。

0 个答案:

没有答案