關於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配置文件的不重啓動態替換。盡情期待。