当前页面: 开发资料首页 → J2SE 专题 → 关于动态加载类库-自己的ClassLoader
关于动态加载类库-自己的ClassLoader
摘要: 关于动态加载类库-自己的ClassLoader
现在在做一个软件框架,用来装载业务组件,组件以内部窗口的方式在主框架软件中显示(MDI),其组件是可定制的,根据配置由框架启动的时候自动加载.
我的设计思路是像Eclipse装插件一样,业务组件只要放到主框架目录下就可以自动被搜索到并被加载,组件是包装好的jar,由一个XML来对该组件进行描述,框架可以根据这个XML得到该组件的类名和其它信息,从而可以通过反射生成组件的实例.
现在就是不明白怎么让软件运行时自动搜索其文件夹下的jar包并加载该类库,实例化对象的时候总是ClassNotFound.试过N多办法,运行的时候java -classpath ... -jar myframework.jar也没效果...
现在求人给个办法,或给我换个思路,谢谢...
一个最简单,不需要什么技术的方法就是写一个小Loader类,该类遍历自己某个目录(例如plugin)下的所有jar文件,生成一个调用自己主类的字符串,如:
String cmd = "javaw -classpath ./plugins/a.jar;./plugins/b.jar mainclassname";
然后使用Runtime来调用 Runtime.getRuntime().exec("cmd /c "+cmd);
如果想研究一下就考虑写一个自己的ClassLoader
ClassLoader明天试试
但无论是
set classpath=xxxx
再
java -jar xxx.jar
还是
java -classpath xxxx -jar xxx.jar
都没用,都怀疑我电脑是不是有问题了