测试的环境为:
myeclipse8.5
jdk1.6
JavaRebel插件
对于javaRebel看开源社区中的描述为:
javaRebel (JRebel)是一个JVM的插件 (非开源),给Java带来了Ruby和PHP风格的动态重新装载类特性,JavaRebel允许一个应用程序(独立的或运行在应用服务器上的应用)重新装载在运行过程中(on the fly)发生的大多数类变化,包括增加或删除方法和域。
javarebel 可以使Java class文件重新加载速度更快,节省了开发时间,而且修改了配置文件和在class中加入任何的代码都不用重启服务器,完全支持Annotation reloading.(Annotation动态载入),当classes字节码文件重新载入的时,它会在触发寄存器监听,允许使用自定义的方法去处理。
所以当修改过代码后就会触发监听然后修改完后重新加载,实现真正意义上的热部署!
配置:
在windows/preferences/MyEclipse/Servers/Tomcat/Tomcat 6.x/点击JDK后会出在右边出现一个Optional Java VM arguments文本框,然后在里面输入以下代码:
-noverify
-javaagent:E:/src/jrebel-3.0-M1/jrebel.jar
-Drebel.dirs=E:\frameWork\strutsWork\SpringMVC2\WebRoot\WEB-INF\classes
其中javaagent为jrebel.jar所放的目录,drebel.dirs为工程目录中.编译过后生成.class文件生成的目录。这样配置完成之后,点应用。重新启动tomcat服务器,后台会出现以下文字:
JRebel 3.0-M1 (200910151623)
(c) Copyright ZeroTurnaround, Ltd, 2007-2009. All rights reserved.
A rough estimate: Over the last 1 days JRebel
prevented the need for at least 3 redeploys/restarts.
Using industry standard build and redeploy times,
JRebel saved you between 0.1 and 0.2 hours.
This product is licensed to Java Hack Organization
for unlimited number of developer seats on site.
JRebel: Directory 'E:\frameWork\strutsWork\SpringMVC2\WebRoot\WEB-INF\classes' will be monitored for class changes.//会监测类的变化
这样完成之后如果你修改了类就会出现这么一句话:
JRebel: Reloading class 'com.fhqihwcw.tag.HasPermission'.//这是我测试用的类
就是重新加载你的.class文件无须再去重新启动服务器。。。。。修改代码和新加方法都会进行重新部署!