我们知道,在 Sun HotSpot JVM 的 debug 模式下,我们可以修改方法 body 的代码而不需要重启 JVM ,但是这种修改在当前的 JVM 版本中是有限制的,即不能动态增加 / 删除成员变量,也不能动态增加 / 删除 / 修改方法定义。
Dynamic Code Evolution Virtual Machine (DCE VM) 是 HotSpot JVM 的一个 HotSwap 增强,允许无限制的修改类定义。需要注意的是,在 DCE VM 的文档中提醒到,该补丁目前还处于试验阶段 . 当该补丁用于调试 java 程序使用是相当稳定的,但不提倡在生产环境中使用该补丁。
该插件的安装非常简单,在 Windows ,模式下,下载安装包,在命令行中运行 java –jar dcevm-0.2-win.jar ,安装程序会替换掉 java 下 bin/client/jvm.dll 和 bin/server/jvm.dll ,并将 dcevm.jar 加到 lib/ext/ 目录。
参考地址: http://ssw.jku.at/dcevm/