读书人

类重新加载有关问题

发布时间: 2012-06-20 20:37:21 作者: rapoo

类重新加载问题
我们知道JSP页面在WEB服务器上会被编译成class文件,如果修改JSP文件那么就会生成新的class文件。

但这些同样的class是如何被加载到服务器中的呢,一个ClassLoader只能加载一次同名类,而JAVA又没有卸载类的概念。

那么我是不是要在每生成一个新的同名class的时候都要定义一个新的不同的ClassLoader才能加载这个被修改过的类呢?

那么一些WEB服务器是如何做到的呢?

[解决办法]
需要动态加载的类不能放到classpath里。
使用 java.net.URLClassLoader 手动载人
[解决办法]
新创建一个 ClassLoader,然后 Thread.currentThread().setContextClassLoader();

Web 应用程序的主要的类加载器就是这个 ContextClassLoader。

读书人网 >J2SE开发

热点推荐