提高开发效率之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

我的修改完之后是这样的

Xml代码 复制代码 收藏代码
  1. -startup
  2. plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
  3. --launcher.library
  4. plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
  5. -product
  6. org.eclipse.epp.package.jee.product
  7. --launcher.XXMaxPermSize
  8. 256M
  9. -vmargs
  10. -Xms128M
  11. -Xmx512M
  12. -XX:PermSize = 64M
  13. -XX:MaxPermSize = 512M
  14. -XX:+PrintGCTimeStamps
  15. -XX:+PrintGCDetails
  16. -XX:+TraceClassLoading
  17. -XX:+TraceClassUnloading
  18. -XX:+PrintGCTimeStamps
  19. -XX:+PrintGCDetails
  20. -verbose:gc
  21. -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状态下做的,大家试试看哦。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你想在不重启 Tomcat 的情况下更新你的 Java Web 应用的代码,你可以尝试使用"热部署"功能。这个功能允许你在不停止应用服务的情况下更新应用的代码。 要使用 "热部署" 功能,你需要在你的 Tomcat 应用服务器上启用这个功能。具体来说,你需要修改 Tomcat 的 server.xml 文件,在 Host 节点中添加一个属性: <Host appBase="webapps" autoDeploy="true" deployOnStartup="true" name="localhost" unpackWARs="true"> 然后,你就可以通过以下方式来更新你的应用代码: 1. 在你的应用项目目录下运行 mvn package 命令来打包应用。 2. 将打包后的 WAR 文件复制到 Tomcat 的 webapps 目录下。 3. 在浏览器中访问你的应用,Tomcat 会自动部署新的 WAR 文件。 注意:使用 "热部署" 功能可能会影响应用的性能,并且在更新代码时可能会出现错误。因此,在生产环境中使用 "热部署" 功能是不推荐的。 ### 回答2: 在Javaweb开发中,如果希望更新代码而不重启Tomcat服务器,一种常见的方法是使用热部署(Hot Deployment)。 热部署是指在应用程序运行期间,更新修改的代码,而无需重启服务器。具体步骤如下: 1. 在Tomcat的conf目录下,找到server.xml文件,在<Host>标签内添加“autoDeploy="true" deployOnStartup="true"”属性。这会开启自动部署功能。 2. 将Javaweb项目源代码编译成class文件。 3. 将class文件复制到Tomcat的webapps目录下对应的项目文件夹中。 4. Tomcat会自动检测到新的class文件,并重新加载对应的类。这样就完成了代码的更新。 需要注意的是,热部署不适用于所有的代码变更。对于部分修改,如web.xml、配置文件或者一些静态资源的修改,仍然需要重启Tomcat服务器才能生效。 此外,还有一些工具可以帮助实现更方便的热部署,如JRebel、DCEVM等。它们能够实时监控代码的变化,并自动重新加载相关的类,无需手动复制文件。 总而言之,热部署是一种方便的方式,可以快速更新代码提高开发效率。但需要注意的是,热部署可能会引发一些问题,如内存泄漏、类加载冲突等,因此在使用时需要谨慎操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值