java如何重载一个jar包?高手指点啊!这个问题已经困扰很久了。

netsunn 2008-03-04 08:32:02
以下是我加载一个jar包的程序段,是通过URLClassLoader加载到当前线程的:
......
Method addURL = URLClassLoader.class.getDeclaredMethod("addURL", new Class[] { URL.class });
addURL.setAccessible(true);
addURL.invoke( Thread.currentThread().getContextClassLoader(),
new Object[] { new File ("D:\\workspace\\applicationproject\\mylib\\test1.jar").toURL() });

Class.forName("task.test1").newInstance();
.......

这个test1.jar是服务器在运行的时候我上传上去的,并执行了一次上面的程序,这样类就被加载进来了。
现在这个包里的类改过了,并且还是只有task.test1这个class ,基于JVM的类加载机制,当我重新
执行以上程序的时候,JVM认为task.test1这个类已经存在,所以它就不加载我刚才上传的改动过的task.test1了,
我需要我执行以上程序的时候这个类会
reload(重载),或者直接回收以前的那个类(这个好像很难做到)。
请问各位大侠,有没有什么好的办法,不管是自己写类加载器还是用开源工具包
如果能解决了这个问题,我就可以松一口气了,谢谢各位大侠,请指教,最好有现成代码让我参考以下,谢谢了!
...全文
111 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
netsunn 2008-03-04
  • 打赏
  • 举报
回复
听说commons-jci这个包可以随时重载一个文件,那位大侠知道怎么使用吗?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧