首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

增高开发效率之tomcat免重启(随意更改java代码)

2012-09-25 
提高开发效率之tomcat免重启(随意更改java代码)???? 做为了一个java开发人员,总是为因为要增加一个类,或是

提高开发效率之tomcat免重启(随意更改java代码)

???? 做为了一个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

?

?

我的修改完之后是这样的

-startupplugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar--launcher.libraryplugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519-productorg.eclipse.epp.package.jee.product--launcher.XXMaxPermSize256M-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状态下做的,大家试试看哦。

?

有什么问题大家可以提出来,互相学习。

Exception in thread "HouseKeeper" java.lang.NullPointerExceptionat org.logicalcobwebs.proxool.HouseKeeperController.getHouseKeeperToRun(HouseKeeperController.java:53)at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:33) 63 楼 steinyxu 2011-05-23   报hot code replace failed。。。 64 楼 java_bigniu 2011-05-27   用eclipse jee 没这么麻烦
不知道新增方法和字段怎么样 65 楼 suyulin6688 2011-05-27   还是 jRebel 好用,强悍得多。 66 楼 theoffspring 2011-05-30   这是扯吧,在spring里dao之类的都定义成单例了,你这个不会导致抛异常吧 67 楼 qnwang 2011-05-31   楼上的大哥能不能教教小弟,怎么把WTP的autoloading去掉?万分感谢!

热点排行