在第19届Jolt大奖中,JavaRebel荣获了生产力大奖,它由ZeroTurnaround公司推出。JavaRebel是一个JVM插件(-javaagent),能够即时重新加载Class,而不需要重新部署应用或者重启容器,以节约时间。
JavaRebel下载地址为:http://www.zeroturnaround.com/javarebel/ ,需要注意的一点是JavaRebel需要License,免费下载的带有evaluation license,可以使用30天。
我们先来看下它支持的JVM有:(以下数据来自http://www.zeroturnaround.com/javarebel/ 网站)
支持的容器:
JavaRebel能与下面的框架无缝集成:
现在大家在开发Web程序时基本上都在使用Eclipse的作为开发工具,JavaRebel支持Eclipse WTP,但是配置稍有点复杂,下面就来介绍下如何配置。
首先将下载的javarebel-2.0.zip解压到本地目录,拷贝javarebel.jar到C:\(可为其它目录)以备后用。
下面以Tomcat 6.0为例介绍如何配置服务器,启动Eclipse,选择Run --> Run Configurations,如下图所示:
选择(x)=Arguments在VM arguments框内容的最后加入下列参数(注意修改javarebel.jar的存放路径):
-noverify -javaagent:c:\javarebel.jar
Apply配置,并点击“运行”按钮,在Console中可以看到有如下输出,则表明JavaRebel在WTP中已经安装成功了:
然后,在Server视图中双击服务器名称,打开Tomcat 6.0服务器属性设置页,设置Publishing方式为Automatically publish when resources change,如下图:
最后,选择Modules页,关闭所有Module的Auto Reload,如下图:
至此,所有配置完成,重新启动Tomcat服务器,修改class后,Tomcat不会进行Publishing,但结果会发生变化。大家去试试吧~~
随便说句,JavaRebel也支持对像EAR/WAR/JAR等文件的class动态加载,有兴趣的读者可以去参考文档
博客来源 http://wing123.iteye.com/blog/378937