Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java中的两个嵌套类会导致异常?_Java_Noclassdeffounderror_Classnotfoundexception_Nested Class - Fatal编程技术网

为什么Java中的两个嵌套类会导致异常?

为什么Java中的两个嵌套类会导致异常?,java,noclassdeffounderror,classnotfoundexception,nested-class,Java,Noclassdeffounderror,Classnotfoundexception,Nested Class,为什么java trowing是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(

为什么java trowing是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
    ...

您需要在类路径中包含
NestedClassTest$Y
类。

这没有什么问题,如果您使用的是eclipse,请执行一个项目,清理并重试,因为构建路径需要更新。

您的代码很好

查看您的错误,您可能会遇到错误软件包的问题

 Exception in thread "main" java.lang.NoClassDefFoundError: 
Nestedclasstest/NestedClassTest$Y
...
Caused by: java.lang.ClassNotFoundException:
nestedclasstest.NestedClassTest$Y
nestedclasstest与nestedclasstest。请参阅此处以了解更多信息


只要重新编译并再次运行,就可以了。

您发布的代码本身并没有错误。编译或调用的困难就在别处。

正如程序工作一样。因此,这是一个如何启动的问题,或者您在以前编译的某个地方破坏了类文件?请继续回答这个问题:如果您使用的是Netbeans,“清理并构建”是您需要的选项。