NoClassDefFoundError, но класс существует - PullRequest
5 голосов
/ 03 июня 2011

Вот ошибка:


Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: sfclocator/UpdateNameForm
    at sfclocator.SFCViewer.(SFCViewer.java:68)
    at sfclocator.SFCViewer$10.run(SFCViewer.java:1823)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: sfclocator.UpdateNameForm
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

Я создал эту программу как проект Netbeans 7.0.Я работал над этим около 2-3 дней, и закончил это вчера.Это сработало отлично вчера.Я пошел спать, проснулся, запустил его этим утром, и внезапно я получил ошибки.Я исправил ошибки, которые появлялись, кроме этой.

Проект компилируется идеально, и JAR даже работает просто отлично, но когда я пытаюсь запустить проект с использованием Netbeans, это выдает мне эту ошибку.Любая помощь будет оценена.


Дополнительная информация, которую я только что узнал:

Когда построено, класс UpdateNameForm существует в папке классов проекта netbeans, но когда я нажимаю запустить, он удаляет классы UpdateNameForm.

Ответы [ 4 ]

3 голосов
/ 03 июня 2011

У меня была похожая проблема, я решил ее, сначала удалив файл jar из пути сборки, а затем добавил его снова. Постройте проект после повторного добавления банки. Иногда путь сборки не обновляется ... я надеюсь, что это работает и для вас.

1 голос
/ 17 октября 2018

У меня внезапно возникла такая же проблема.Я проверил вывод процесса сборки в / build / classes и не смог найти отсутствующий класс.Не удивительно, что сообщение об ошибке ... Мой способ исправить это в NetBeans 8.2 - щелкнуть правой кнопкой мыши проект, чтобы открыть страницу свойств.Затем перейдите в раздел «Компиляция» в разделе «Сборка» и снимите флажок «Компилировать при сохранении».После этого я сделал какое-то фиктивное редактирование проблемного класса - зашел в System.out ... и снова удалил его - и сохранил.После этого я мог щелкнуть правой кнопкой мыши по классу и выбрать Compile File.Снова проверяя в / build / classes, я увидел, что классы теперь собраны.Запуск программы сработал, и я мог повторно установить флажок «Компилировать при сохранении» в свойствах проекта.

0 голосов
/ 04 июня 2011

Я решил свою проблему, создав новый проект netbeans из существующих источников. На мой взгляд, это не очень хороший способ сделать что-то (особенно в больших проектах), но ни один из существующих ответов не дал решения.

0 голосов
/ 03 июня 2011

Такие проблемы почти всегда возникают из-за проблем с classpath.

  • Проверьте настройку пути к классам
  • Убедитесь, что банка, содержащая ваш класс, находится в среде выполнения
  • Убедитесь, что класс не находится в другой банке, найденной ранее в вашем пути к классу, особенно в более ранней / более поздней версии банки (то есть, если вы обновили, но не очистили свои старые банки)

Если вы не знаете, в каком банке находится ваш класс, я считаю этот сайт неоценимым, чтобы помочь вам узнать: http://www.jarfinder.com

...