Я просмотрел эту ветку. Какие причины и каковы различия между NoClassDefFoundError и ClassNotFoundException?
Вот что один из ответов, имеющих максимальное количество ошибок, в ветке:
NoClassDefFoundError: «Итак, похоже, что NoClassDefFoundError происходит, когда исходный код был успешно скомпилирован, но во время выполнения необходимые файлы классов не были найдены. Это может произойти при распространении или создании файлов JAR, в которые не были включены все необходимые файлы классов.
ClassNotFoundException: Что касается ClassNotFoundException, то, похоже, оно может быть связано с попыткой выполнить рефлексивные вызовы классов во время выполнения, но классы, которые программа пытается вызвать, не существуют.
Я провел небольшой эксперимент. Я создал основной класс, класс A, и попытался вызвать из него другой класс, класс B, который успешно скомпилировался.
Затем я удалил класс B, который вызывается в классе A.
Я получил java.lang.ClassNotFoundException, но согласно ответу в треде я должен был получить NoClassDefFoundError (исходный код был успешно скомпилирован) но во время выполнения файлы классов не были найдены)
Может ли кто-нибудь объяснить, чего мне не хватает в интерпретации ответов в теме?
package com.random;
public class A {
public static void main(String[] args) {
B b= new B();
}
}
package com.random;
public class B {
}
Подробнее здесь: https://stackoverflow.com/questions/283 ... founderror