关于hotswap(该补丁的网址http://ssw.jku.at/dcevm/)java
Hotswap是一个容许在运行状态下无限制的修改加载类文件的Java虚拟机补丁。当前java虚拟机的动态加载机制只容许修改类的方法体,而打了hotswap补丁之后,能够增长,删除类属性,方法,甚至能够改变一个类的父类。linux
Hotswap补丁是基于GPLv2.0开源协议的。你能够经过windows,linux,macos下载hotswap补丁的源代码或者可执行文件。web
安装hotswapspring
警告:该补丁目前还处于试验阶段.当该补丁用于调试java程序使用是,是至关稳定的。但咱们不提倡在生产环境中使用该补丁。macos
如今提供了32位,64位Windows虚拟机,32位MacOS的(从这里得到),和32位Linux虚拟机的补丁.全部的修改基于JDK7-b102版本。windows
dcevm-0.2-win.jar(5.6MB)app
dcevm-0.2-mac.jar(6.0MB)eclipse
dcevm-0.2-linux.jar(5.8MB)jvm
该补丁不只能打在java7上,且打到java6上,也同样正常工做。ide
在windows启动安装程序,在控制台输入:
> java -jar dcevm-0.2-win.jar
在MacOS启动安装程序,终端输入:
$ sudo java -jar dcevm-0.2-mac.jar
在MacOS启动安装程序,终端输入:
$ sudo java -jar dcevm-0.2-linux.jar
安装程序会替换掉java下bin/client/jvm.dll和bin/server/jvm.dll,并将之后的jvm.dll备份到相应目录下。还会将dcevm.jar加到lib/ext/目录.
图一:hotswap补丁安装界面。
执行上述命令后,就会出现图一界面,选择将要安装该补丁的java目录,单击安装就能够了。
Ps:若是你的Linux没有图形界面,您能够从这里下载已经打好补丁的java。
使用hotswap调试java程序
首先用修改后的java以debug模式启动java程序。
使用eclipse链接到该java进程(也能够直接在eclipse中以debug方式启动)
如今在eclipse工程下面针对class文件的任何修改将会直接反映到java程序中去。
hotswap在淘宝
令咱们高兴的是,淘宝开发人员对该技术有着强烈的兴趣,目前已有以下团队使用的该补丁:Mytaobao开发团队,TDDL(Rtools)开发团队,HSF开发团队,交易中心等团队。
咱们期待你的加入。
Ps:若是你使用HSF_JETTY插件,你只要经过升级就hsf_jetty,不用手动安装,就能够使用该patch。咱们并会在接下来实现spring,webx配置文件的不重启动态替换。尽情期待。