为什么Java使用NoClassDefFoundError?
NestedClassTest类在内部具有两个嵌套类X和Y。
当调用实例化X和Y的NestedClassTest的构造方法时,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
...
最佳答案
您的代码很好。
查看您的错误,您可能会遇到软件包错误的问题。
Exception in thread "main" java.lang.NoClassDefFoundError:
Nestedclasstest/NestedClassTest$Y
...
Caused by: java.lang.ClassNotFoundException:
nestedclasstest.NestedClassTest$Y
nestedclasstest与Nestedclasstest。在这里参考reference
只需重新编译并再次运行,就可以正常工作。