【发布时间】:2013-06-19 07:07:54
【问题描述】:
我有一个具有静态最终方法的类。[比如说 A、B、C]。
C调用另一个类D[D的包被导入C]。
我没有包 D 的 maven 程序集 jar[比如 M.jar]。 在运行时,当我尝试在类路径中调用具有 M.jar 的 A 时,出现 noclasdef 错误,说 D 不存在。
为什么我会得到这个?
package TEST1
import test.CHECK.TestA;
import test.CHECK.TestB;
class Factory
{
final static A()
{
//some ref to test.CHECK.TestA
}
static B()
{
//some ref to test.CHECK.TestB
}
static C()
{
}
我有一个包含此类的 jar,并在该 jar 中打包了 test.CHECK.TestB。但是,这个 jar 不包含 test.CHECK.TestA。
现在,我有这个 jar 的客户端程序调用 C()。
然后,为 TestA 获取 ClassNotFoundException,尽管我们没有调用 A()。为什么会这样?
【问题讨论】:
-
不要混淆代码,变得难以理解
-
请在此处发布您的代码..
-
请提供更多细节来解释您的问题 - 显示一些真实代码将增加答案的可能性
-
你是如何构建你的 jar 的? D 类是你自己的代码还是外部依赖?
-
把你的代码....只有我们才能理解你真正想说的。或者放一个相同概念的图片...