用jreloader不重启JVM动态重新加载改变的类

阅读更多

事情的起源是,我们一个程序内置了一个REST服务的server(是Jersey的Grizzly),启动后,修改类文件,需要重启服务器才能让修改生效。
这时候,就想到要动态加载类了。

在JAVA的世界里面,类,不是动态加载的,除非你检测class的变化,去写classloader啦 。
当然,世界上还有很多苦逼JAVA程序员碰到这个问题,所以,他们发明了俩工具:
JRebel :http://zeroturnaround.com/software/jrebel/
jreloader: http://code.google.com/p/jreloader/

JRebel是商业软件,也有社区免费版,我解决这个问题用的是jreloader,因为?简单一点吧。

步骤:

1、下载jreloader,解压到某个地方(地址?上面有啦,哥)
2、配置运行的参数,加入jreloader需要的参数

用jreloader不重启JVM动态重新加载改变的类_第1张图片
 
3、运行程序
4、修改类,编译修改的类
这时,我们就看到jreloader起作用啦

最后,有一篇介绍jreloader的问题,你们也看看吧:

http://unmi.cc/jreloader-reload-class

  • 用jreloader不重启JVM动态重新加载改变的类_第2张图片
  • 大小: 12.1 KB
  • 用jreloader不重启JVM动态重新加载改变的类_第3张图片
  • 大小: 3.5 KB
  • 查看图片附件

你可能感兴趣的:(jvm)