提高开发效率之tomcat免重启即热部署
来源:互联网 发布:mac地址win10 编辑:程序博客网 时间:2024/05/17 09:23
http://aiyooyoo.com/index.php/archives/280/
引言:做为了一个java开发人员,总是为因为要增加一个类,或是增加删除一个方法,甚至修改一个小处代码而不得不再次重启服务器。而启动服务器总是那么的浪费时间。
而php有java更有优势在于它是动态加载的。而为什么java就不可以呢?
关于hotswap(该补丁的网址http://ssw.jku.at/dcevm/)
不支持JDK5及以下版本。
Hotswap 是一个允许在运行状态下无限制的修改加载类文件的Java虚拟机补丁。当前java虚拟机的动态加载机制只允许修改类的方法体,而打了hotswap补丁以后,可以增加,删除类属性,方法,甚至可以改变一个类的父类。
Hotswap补丁是基于GPL v2.0开源协议的。你可以通过windows,linux,mac os下载hotswap 补丁的源代码或者可执行文件。
安装hotswap
警告: 该补丁目前还处于试验阶段. 当该补丁用于调试java程序使用是,是相当稳定的。但我们不提倡在生产环境中使用该补丁。
现在提供了 32位, 64位 Windows虚拟机, 32位 Mac OS的 (从这里获得), 和32位 Linux 虚拟机的补丁. 所有的修改基于 JDK7-b102版本。
安装程序
- dcevm-0.2-win.jar (5.6 MB)
- dcevm-0.2-mac.jar (6.0 MB)
- dcevm-0.2-linux.jar (5.8 MB)
该补丁不仅能打在java7上,且打到java 6上,也一样正常工作。
在windows 启动安装程序,在控制台输入:> java -jar dcevm-0.2-win.jar
在Mac OS启动安装程序,终端输入:$ sudo java -jar dcevm-0.2-mac.jar
在Mac OS启动安装程序,终端输入:$ 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程序中去。
eclipse端的修改
eclipse.ini文件里面最后加入:(这里面要把原有的部分去掉一些)
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=512M
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-XX:+TraceClassLoading
-XX:+TraceClassUnloading
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-verbose:gc
-Xloggc:gc.log
重启一下eclipse看是否可以正常启动,这样的就配置完成了。
接下来是做个小试验。
1、在你的web程序下,debug状态启动tomcat。(注意在要debug状态下)
当你的程序正常运行后,要你想在改动的地方java代码,更改下,再重新刷下页面就明白了。(如果还是不成功,可以和我交流下)
相关文档学习:
1、http://www.slideshare.net/wangscu/hotspot-hotswap-who-and-who-are-best-freinds
2、http://rdc.taobao.com/team/jm/
其它方案:jrebel(收费)
- 提高开发效率之tomcat免重启即热部署
- tomcat部署心得(可以提高开发效率)
- 提高开发效率之tomcat免重启(随意更改java代码)
- itoo-快捷部署脚本--提高部署开发效率
- 工具推荐之提高Java开发效率
- 提高开发效率之“每日时间管理”
- 使用JRebel实现Web项目热部署, 提高开发效率
- 热部署-如何利用 HotCode 提高开发效率
- tomcat免重启随意更改java代码 提高开发效率
- Eclipse Maven Tomcat 组合之下 提高开发效率的尝试
- 如何提高开发效率
- 怎样提高开发效率
- 怎样提高开发效率
- 提高ios开发效率
- 提高iOS开发效率
- 提高开发效率
- 【经验】提高开发效率
- 提高软件开发效率三板斧之二利用CMP模式
- copy的用法
- 开漏与推挽
- Android 布局分析
- android布局
- 12月8号安排
- 提高开发效率之tomcat免重启即热部署
- pg启动过程中的那些事二:初始化PostmasterContext
- 手工数据库复制
- AdaBoost算法原理
- js检查数字
- 推挽输出与开漏输出的区别
- 使用JRebel解决tomcat的热启动问题
- Android 五大布局对象---FrameLayout,LinearLayout ,AbsoluteLayout,RelativeLayout,TableLayout.
- android中遇到的bug