【发布时间】:2011-10-05 02:48:18
【问题描述】:
我有 3 个 Java 项目 A、B 和 C。 B 就像 A 的附加组件。A 和 B 都依赖于项目 C 的某些类。
现在在项目 A 中,当我使用如下 URLClassLoader 时:
URLClassLoader ucl = new URLClassLoader(urls); //urls are paths to some classes in B
现在在使用这些 ucl 时,当我在 B 中调用一些方法时,它给了我 No Class Definition found 异常。这是针对 C 类的。
现在当我使用 ClassLoader 时如下:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URLClassLoader ucl = new URLClassLoader(urls, classLoader);
当我调用 B 中的方法时,这很好用。 我的问题:
1) 当我使用第一种方式时,使用的是哪个 ClassLoader?我阅读了 JavaDocs,但找不到任何可以解释的内容。
2) 有没有办法获得一个特定于项目 B 的 ClassLoader,我可以以某种方式使用它,这样我就不会遇到任何依赖问题?
感谢您的帮助。
【问题讨论】:
标签: java urlclassloader