日期:2014-05-19  浏览次数:20749 次

动态加载非独立Jar包的问题
现在有A.jar引用A1.jar , 我在B.jar中通过使用URLClassLoader的方式动态加载A.jar,但是这时报错说找不到A.jar所引用的A1.jar中的类。

如果在B中引用了A1.jar就不会出现这个问题,但设计B是不知道A都引用了哪些包的。

请问如何让B动态加载A以及A的所有依赖包? 谢谢!


------解决方案--------------------
在编译或执行时要在classpath中加入A1.jar才可以
URLClassLoader我没用过,但是由于你仅在代码中动态引入了A.jar,但是A.jar依赖的A1.jar没有出现在classpath中,所以会导致无法编译。

没有使用过URLClassLoader类,查了一下文档。
如果想动态加载多个类,可以调用addURL(URL url)这个方法,JDK文档中这样介绍:
Appends the specified URL to the list of URLs to search for classes and resources.
我想可以允许一个URLClassLoader对象查找多个位置。
------解决方案--------------------
探讨

在编译或执行时要在classpath中加入A1.jar才可以
URLClassLoader我没用过,但是由于你仅在代码中动态引入了A.jar,但是A.jar依赖的A1.jar没有出现在classpath中,所以会导致无法编译。

没有使用过URLClassLoader类,查了一下文档。
如果想动态加载多个类,可以调用addURL(URL url)这个方法,JDK文档中这样介绍:
App……