Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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 ClassNotFoundException';原因_Java_Classnotfoundexception - Fatal编程技术网

Java ClassNotFoundException';原因

Java ClassNotFoundException';原因,java,classnotfoundexception,Java,Classnotfoundexception,如果生成路径正确并且所有类都可以访问(同一个包!),那么出现此异常的原因是什么?我该怎么做才能找到罪犯的线索? 谢谢 我会检查构建所有类的目录。我想你会发现你的班级不见了 编辑:当@Hot-Licks注释时,从一个断开的类中得到的错误是NoClassDefFoundError public static void main(String... ignored) { for (int i = 0; i < 3; i++) { try { ne

如果生成路径正确并且所有类都可以访问(同一个包!),那么出现此异常的原因是什么?我该怎么做才能找到罪犯的线索?
谢谢

我会检查构建所有类的目录。我想你会发现你的班级不见了


编辑:当@Hot-Licks注释时,从一个断开的类中得到的错误是NoClassDefFoundError

public static void main(String... ignored) {
    for (int i = 0; i < 3; i++) {
        try {
            new BrokenClass();
        } catch (Throwable t) {
            System.out.println(t);
        }
    }

}

static class BrokenClass {
    static {
        if (true)
            throw new AssertionError();
    }
}
生成路径正确,所有类都可以访问

那你就不应该出错了。出现该错误的另一个原因是,该类是由子类装入器装入的,并且位于类路径中,但父类装入器正在尝试访问它(假设委托模型是父类优先)。在这种情况下,类由JVM加载,但程序无法访问它


仔细想想,有一些更复杂的场景可能会根据类加载器的实例化和使用方式导致类加载异常Commons日志记录遭受了这些痛苦,我在接收端的次数比我愿意承认的要多。如果您想看一看,有一篇文章会突出这些场景。

这里有一篇很好的文章可能会对您有所帮助。它列出了13件你可以考虑去寻找罪魁祸首的事情。
.

检查堆栈跟踪将是一个好的开始。出现此异常的唯一原因是类不在类路径中。。仔细检查你的类路径这是因为路径不正确,并且所有的类都不可访问。也许你要寻找的答案就是这个问题。您是否使用IDE?这通常是NoClassDefFoundError。@HotLicks感谢您的更正。
java.lang.AssertionError
java.lang.NoClassDefFoundError: Could not initialize class Main$BrokenClass
java.lang.NoClassDefFoundError: Could not initialize class Main$BrokenClass