【发布时间】:2013-08-03 16:51:51
【问题描述】:
为什么 java 会抛出 NoClassDefFoundError?
NestedClassTest 类内部有两个嵌套类 X 和 Y。
调用NestedClassTest的构造函数,实例化X和Y,java尝试实例化Y时抛出异常。
public class NestedClassTest {
private X x = null;
private Y y = null;
public NestedClassTest()
{
x = new X();
System.out.println(x.x);
y = new Y();
System.out.println(y.y);
}
private class X
{
public String x = "XXX";
}
private class Y
{
public String y = "YYY";
}
public static void main(String[] args) {
NestedClassTest t = new NestedClassTest();
}
}
这是输出的一部分:
run:
XXX
Exception in thread "main" java.lang.NoClassDefFoundError:
Nestedclasstest/NestedClassTest$Y
...
Caused by: java.lang.ClassNotFoundException:
nestedclasstest.NestedClassTest$Y
...
【问题讨论】:
-
按原样运行您的程序。所以这是你如何启动它的问题,或者你在以前的编译中破坏了类文件?
标签: java noclassdeffounderror classnotfoundexception nested-class