DCEVM 提供 JRebel 类似的功能,允许允许在运行时无限制地重新定义加载的类,所谓”热插拔、热加载、热部署“功能大抵如是。而 HotwapAgent 则适配了 Servlet 程序的热加载。
最重要的是 DCEVM + HotwapAgent 免费、开源,不用为 JRebel 找破解而折腾,而且也心安理得地用。
安装 DCEVM 需要 DCEVM 和 JVM 两者版本一致才行。运行 java -version 确认您的 Java 版本。
因为要指定版本所以不一定要用最新的 JVM 版本,要到 Oracle Java Archive 这个页面下载,且需要有 Oracle 的账号。下载完后安装好,然后下载 DCEVM 的patch ,是个 jar 包。
命令行输入 java -jar DCEVM-8u181-installer-build2.jar 进行安装。
选择指定的 Java 版本,然后点击“Instll DCEVM as altjvm”,完成之后如下图所示。
关于“增强调试模式”和“增强JRebel模式”两种的模式可参考: http://blog.51cto.com/zixiu/1887548
这里以 Eclipse 为例子, IntelliJ IDEA 的话请参考官网文档(Idea 有 HotSwapAgent 插件)。首先配置工程编译的 JDK 和 JRE,这里选择已经 DCEVM 扩展后的
如果使用 Tomcat,则配置 VM 选项为 DCEVM 扩展后的
接着去下载 HotswapAgent jar 包,记住保存的位置,然后打开 Eclipse 的 Tomat 配置,找到如下界面,输入运行参数:-XXaltjvm=dcevm -javaagent:/HotswapAgent.jar,注意 jar 要给出全部路径,例如 c:/temp/dev/xxx.jar。
然后禁止 Tomcat 的自动加载,
ok 可以了现在测试下,启动一个 web 项目,记得要 Debug 模式启动。
启动时候如下图表示成功了。
启动后修改任意一个 class,果然马上有反映!而且我这个类是经过 Javassits 加载的,两者不影响冲突。