精华帖 (2) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-30
最后修改:2010-12-31
做为了一个java开发人员,总是为因为要增加一个类,或是增加删除一个方法,甚至修改一个小处代码而不得不再次重启服务器。而启动服务器总是那么的浪费时间。一个小时的编程 10 分钟左右,这效率....
而php有java更有优势在于它是动态加载的。而为什么java就不可以呢?
你想要什么?可以加方法?可以加类?可以动态的随意更改java代码又不重启服务器?
现在这些都可以实现了,今天重大发现这些都可以做到了。java也变为和php一样可以动态的更改了。
今天听到了这么一个发现,觉得确实很好,现在在这里和大家分享下。
要做到这样功能需要对本机有所配置一下:
安装步骤: 1、 在 windows 启动安装程序,在控制台输入 : > java -jar dcevm-0.2-win.jar (路径放到dcevm-0.2-win.jar的文件夹)下面附件下载 等一会儿,这时会出现一个程序框。选择一个jdk,再install。完成后test一下(安装完成没有提示,差不多的时间就点test看一下,如果成功就是安装好了)
安装程序会替换掉 java 下 bin/client/jvm.dll 和 bin/server/jvm.dll ,并将以后的 jvm.dll 备份到相应目录下。还会将 dcevm.jar 加到 lib/ext/ 目录 .
2、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
我的修改完之后是这样的 -startup plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519 -product org.eclipse.epp.package.jee.product --launcher.XXMaxPermSize 256M -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/ (感谢oznyang提供)。
p.s:我是在remoteDebug状态下做的,大家试试看哦。
有什么问题大家可以提出来,互相学习。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-12-30
最后修改:2010-12-30
新增加的方法,能不用重启就加载吗?
|
|
返回顶楼 | |
发表时间:2010-12-30
sunchaohui_koko 写道 新增加的方法,能不用重启就加载吗?
嗯,可以的 |
|
返回顶楼 | |
发表时间:2010-12-30
新增加类呢?
或者maven更新了,也可以吗? |
|
返回顶楼 | |
发表时间:2010-12-31
苍山洱海 写道 新增加类呢?
或者maven更新了,也可以吗? maven里面自带jetty和tomcat插件。。。。不过这所谓的免重启偶尔会引发Heap的持久带内存溢出 |
|
返回顶楼 | |
发表时间:2010-12-31
传说中的热部署吗?
|
|
返回顶楼 | |
发表时间:2010-12-31
使用WTP写Web工程,什么配置信息都不用修改,把WTP的autoloading去掉,Debug启动Tomcat就可以实现热加载了,不用这么麻烦的。
|
|
返回顶楼 | |
发表时间:2010-12-31
jorneyR 写道 使用WTP写Web工程,什么配置信息都不用修改,把WTP的autoloading去掉,Debug启动Tomcat就可以实现热加载了,不用这么麻烦的。
你增加一个方法或者字段试试看。不需要重启才怪。 debug状态下,只有修改方法内的代码,才不需要重启。 |
|
返回顶楼 | |
发表时间:2010-12-31
试试,装了有问题还能把JAVA下的还原过来吧?
|
|
返回顶楼 | |
发表时间:2010-12-31
学习下play的代码,就可以自己实现一套hotswap方案,我们现在的开发框架中就实现了这样的东西。
|
|
返回顶楼 | |