如何动态加载jar包?急,在线等!!!

Mars.CN 2008-12-15 09:42:58
jar包如何动态加载进去?
我一个程序正在运行中,运行状态时要动态加载类进去,我加载类的方法用
Service service = (Service) Class.forName(info.getServicePath()).newInstance();
来实现
info.getServicePath()可以得到一个类的位置,比如"com.marssoft.services.TXService"
Service 是一个父类,继承他的类在以后的工作中会陆续写进去,然后以jar包的方式放到运行目录下
现在的问题是,当平台一起来的时候如果jar存在,类就能写进去,但是一旦起来后再放入新的jar包就不认了,怎么办?
我想在平台运行期间不断的加jar包进去,然后通过配置文件的改变来动态加载类
高手们有什么办法实现?
...全文
499 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mars.CN 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 PorterChou 的回复:]
我觉得你可以考虑做一个jar包管理类,一开始就加载,然后一直存在内存中,有新的jar包进来时,添加注册项到管理类中的集合中去,然后getServicePath()改改,作为从管理类的注册集合中去取。
[/Quote]
我现在问的就是这个问题,怎么对jar包进行管理?
包括动态加载jar包,更新加载的jar包,移除加载的jar包
若凹 2008-12-15
  • 打赏
  • 举报
回复
我觉得你可以考虑做一个jar包管理类,一开始就加载,然后一直存在内存中,有新的jar包进来时,添加注册项到管理类中的集合中去,然后getServicePath()改改,作为从管理类的注册集合中去取。
duoduo6153 2008-12-15
  • 打赏
  • 举报
回复
每个平台都有自己的ClassLoader实例,你要先获取平台当前的ClassLoader实例,用获取的ClassLoader来加载指定的jar
duoduo6153 2008-12-15
  • 打赏
  • 举报
回复
什么平台
Mars.CN 2008-12-15
  • 打赏
  • 举报
回复
拜托,来个帮忙解决问题的好不好呀……
a47305816 2008-12-15
  • 打赏
  • 举报
回复
汗~路过看见你这么急就进来了
Mars.CN 2008-12-15
  • 打赏
  • 举报
回复
关注没用,关键是有人来解答
duhongltz 2008-12-15
  • 打赏
  • 举报
回复
关注
davidzhang0821 2008-12-15
  • 打赏
  • 举报
回复
up,大致意思就这样。
或者在主程序中设一监听,更新时设置一事件去激发。。。。
若凹 2008-12-15
  • 打赏
  • 举报
回复
我觉得,你可以写一个线程先让其定时遍历读取某文件夹下的jar包名,并和集合中的比较,如果发现现有集合中没有,那就添加进来。假如你立刻要加载某jar包,可以让其立刻遍历该文件夹。可以先在集合中搜索,没有再去文件夹里搜索并加载。会用到目录遍历,file.listFiles(), isDirectory()等可用.

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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