现在有A.jar引用A1.jar , 我在B.jar中通过使用URLClassLoader的方式动态加载A.jar,但是这时报错说找不到A.jar所引用的A1.jar中的类。如果在B中引用了A1.jar就不会出现这个问题,但设计B是不知道A都引用了哪些包的。请问如何让B动态加载A以及A的所有依赖包? 谢谢!

解决方案 »

  1.   

    在编译或执行时要在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对象查找多个位置。
      

  2.   

    其實,就類似與,你配置java環境變量的classpath一樣,你將dt.jar等加入進來一樣,如果在這裏不指定,則需要每次執行的時候手動指定