200分给予解答:如何实现JVM类重新加载?
yczz 2010-03-14 01:43:08 去年有一款产品“jrebel”可以实现运行时的类重新加载(包括方法的新增和删除),大家都知道JVM使用Application ClassLoader来加载放在classpath下的类,而且只加载一次下次在访问就会从缓存中取,所以要实现类重载只能是重新创建一个新的ClassLoader在来加载变化后的class。
问题:
1、JVM是在什么时候创建类的ClassLoader
2、创建自己的ClassLoader没什么问题,但是创建后的ClassLoader如何注册到JVM中呢?
不知道有没有JVM的高手可以解答这个问题
注意:此贴并是不讨论如何创建自定义的ClassLoader,而是需要一个JVM的钩子能够实现的需要时自动创建ClassLoader来达到类的重新加载的功能。