АБДУЛХАЕЕ:
NoClassDefFoundError в Java возникает, когда виртуальная машина Java не может найти определенный класс во время выполнения, который был доступен во время компиляции. Например, если у нас есть вызов метода из класса или доступ к любому статическому члену класса, и этот класс недоступен во время выполнения, тогда JVM сгенерирует NoClassDefFoundError. Важно понимать, что это отличается от ClassNotFoundException, который возникает при попытке загрузить класс только во время выполнения, а имя было предоставлено во время выполнения, а не во время компиляции. Многие Java-разработчики смешивают эти две ошибки и запутываются.
Короче говоря, NoClassDefFoundError появится, если класс присутствовал во время компиляции, но не был доступен в пути к классам Java во время выполнения. Обычно вы увидите ниже строку в журнале, когда вы получите NoClassDefFoundError:
Исключение в потоке "основной" java.lang.NoClassDefFoundError
Исключение в потоке «main» просто означает, что его «основной» поток, который не может найти определенный класс, может быть любым потоком, так что не беспокойтесь. Разница между этой ошибкой, возникающей в основном потоке и другом потоке, заключается в том, что когда исключение в потоке «main» приводит к сбою программы или ее самому отключению, в отличие от другого потока, и в этом случае ваша программа продолжит работу.,
Подробнее: http://javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html#ixzz2jr35SsaZ