#java #netbeans
#java — язык #сетевые приложения #java #netbeans
Вопрос:
Я пытался переустановить netbeans, я пытался переустановить java. Я не уверен, что происходит, но я получаю это исключение случайным образом из каждого класса, пока не перезапущу netbeans. У кого-нибудь похожие проблемы?
запустите:
Exception in thread "main" java.lang.NoClassDefFoundError: com/company/utilities/formatters/DateFinder
at com.protocase.db.DatabaseAdapter.<init>(DatabaseAdapter.java:44)
at packagingqueries.PackagingQueries.getBatchIDsForOperation(PackagingQueries.java:42)
at packagingqueries.PackagingQueries.main(PackagingQueries.java:20)
Caused by: java.lang.ClassNotFoundException: com.protocase.utilities.formatters.DateFinder
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
Комментарии:
1. Вы пробовали делать чистую сборку? Иногда это помогает в Eclipse.
2. Да, я пробовал, к сожалению, ничего не вышло.
Ответ №1:
Иногда каталог локального кэша NetBeans повреждается (либо из-за сбоя приложения ранее, либо из-за того, что произошло что-то другое / неопределенное). NetBeans начинает вести себя странно. Повторная установка не помогает, потому что каталог локального кэша не всегда удаляется.
Если вы на 100% уверены, что в вашем приложении нет проблемы с path:
- Закройте NetBeans
- Если вы используете Windows, перейдите в c:Usersyouruserid.netbeans7.0 (еще найдите соответствующий каталог в вашей системе)
- Полностью удалите содержимое
- Перезапустите NetBeans
NetBeans воссоздаст содержимое этого каталога. Это может решить вашу проблему. Если этого не происходит, то ваша проблема заключается в конфигурации вашего приложения или, наверняка, в поврежденной библиотеке.
Если в месте, где хранятся эти файлы, не хватает места для записи, может возникнуть эта проблема. Как обычно, нужно освободить место…
Комментарии:
1. Если вы используете Mac OS, папка: /Users/yourUserId/Library/Caches/NetBeans/version/index Заменит yourUserId и версию netbeans.
2. Для NetBeans 8.0 в Windows 8 путь таков
C:Users[User Name]AppDataLocalNetBeansCache8.0
Это решило мою проблему, которая сохранялась после переименования проекта, сброса, перенастройки и повторного создания.3. Для пользователей Windows для простого копирования и вставки:
%appdata%..localNetBeansCache
4. Спасибо! Это работает отлично! Может быть довольно неприятно, когда вещи случайным образом перестают работать, и кажется, что кэш обычно является причиной проблемы 😉
Ответ №2:
Возможно, вы запускаете свой проект с опцией «Скомпилировать при сохранении». Пожалуйста, снимите этот флажок.
Я знаю, что эта опция очень полезна, но «Компиляция при сохранении» вызывает такие проблемы.
Комментарии:
1. Вы, сэр … спасаете жизнь!! Работал над относительно обширным проектом (около 80 файлов кода плюс.) и внезапно Netbeans начал жаловаться, что не может найти класс базовой подсистемы!!! Пытался полностью перезагрузить проект и его зависимости, несколько перезапусков и как раз собирался переустановить Netbeans, когда увидел ваш пост; оказывается, простое отключение «Компиляции при сохранении» устранило проблему. Большое спасибо!!
2. Это сработало и для меня в 8.1 (Mac OSX). Очистка кэша не помогла. Интересно, относится ли это к netbeans.org/bugzilla/show_bug.cgi?id=194263 тоже
3. Очень полезный ответ!
Ответ №3:
Обычно это проблема с путем к КЛАССУ. Попробуйте сбросить путь к КЛАССУ и / или убедитесь, что все сторонние JAR-файлы действительно присутствуют в правильных местах. В некоторых редких случаях вы столкнетесь с этой проблемой, когда у JVM возникнут проблемы с загрузкой стороннего jar-файла из-за несовместимости версий. Можете ли вы опубликовать свои настройки CLASSPATH?
Комментарии:
1. Проблема с путем к КЛАССУ, да. Я устрою ей головокружение.
2. Как мне опубликовать мои настройки classpath?
3. Я просто имел в виду, где мне это взять?
4. Не уверен, разобрались ли вы с этим еще или нет. Но чтобы получить настройки пути к классам, откройте свойства проекта и перейдите в Библиотеки. Скопируйте и вставьте сюда настройки для запуска тестов.
5. Не уверен, обновил ли Netbeans 7.0 панель свойств, но похоже, что обновил. Я проверю после работы и обновлю свой комментарий выше.
Ответ №4:
@dah: насколько я понимаю, ваш код развернут в JDK, сконфигурированном netbeans как простое Java-приложение. При запуске вашего приложения вы столкнулись с проблемой ошибки NoClassDefFoundError? Это правильное понимание. Ошибка NoClassDefFoundError может быть вызвана любой из следующих проблем:- i) класс действительно отсутствует. sol: очевидное решение. ii) Класс присутствует, но все еще ошибка. Sol: проверьте, присутствует ли оно в classpath. здесь важна видимость загрузчика классов. iii) Класс присутствует и присутствует в classpath, но все равно ошибка. Sol: Если у вас есть класс в jar, это может быть связано с тем, что jar был создан с использованием другой версии java, отличной от той, которую используете вы. Итак, вам нужно перекомпилировать jar, а затем заменить новый jar. проверьте это: — http://code.google.com/p/versioncheck
Комментарии:
1. Под развернутым вы имеете в виду, что я запускаю его из папки dist в другом месте? В основном это происходит во время отладки.
Ответ №5:
У меня была такая же проблема, ошибка Class not Found, и после прочтения некоторых из этих комментариев обнаружил, что netbeans потеряет ссылку на добавленные файлы jar в библиотеке. Удаление jar-файлов и их повторное добавление в библиотеку приведет к воссозданию ссылки.
Ответ №6:
У меня была похожая проблема, которая вызывала NoClassDefFoundError
вызванную ClassNotFoundException
.
В моем случае я скопировал зависимость в свой pom.xml это включало строку
<scope>provided</scope>
Похоже, что netbeans / maven загрузили jar в Netbeans для разработки и компиляции, но не включили его в исполняемый файл jar, поскольку я сказал, что он «предоставлен».
Когда я удалил эту строку из своего pom.xml
, ошибка исчезла.
Ответ №7:
Очень простой способ заключается в том, что немного измените свой код, что означает некоторые небольшие изменения, очистите и снова выполните сборку. означает любой способ заставить ваш компилятор принудительно скомпилировать вашу программную форму снова, и таким образом она будет запущена.
Попробуйте, это будет полезно.
Ответ №8:
У меня эта проблема возникла сразу после того, как NetBeans сказал «мало памяти». Я пробовал другие решения, перезапуск, перезагрузку, удаление различных каталогов, как указано выше, безрезультатно.
По какой-то причине получилось удалить каталог классов из / build, а затем выполнить очистку / Build. Не знаю, почему это сработало, потому что я думал, что dir все равно был удален во время «очистки» … возможно, его удаление конструктивно запутало NetBeans (?)
Ответ №9:
Я запускаю Netbeans 6.9.1, и время от времени он просто запутывается и начинает говорить, что не может найти некоторые ссылки. Я запускаю его на двух разных компьютерах с Windows с разными конфигурациями, и это происходит на них обоих. В большинстве случаев это связано с файлом .jar. Единственное решение, которое я смог придумать, это перезапустить Netbeans.
Комментарии:
1. Перезапуск Netbeans на самом деле не решение, это скорее обходной путь.
2. Решение — это метод, который решает проблему. Обходной путь — это решение, которое оставляет нерешенными некоторые менее важные проблемы.
Ответ №10:
Я использовал решение, опубликованное JVerstry. Я работал для себя над:
ubuntu studio с netbeans 8.0.2
проблема возникла после установки плагина jax-rpc для создания клиента веб-службы.
надеюсь, это поможет кому-нибудь еще.
Ответ №11:
Такая ошибка может произойти даже в netbeans 15, поэтому похоже, что она не зависит от версии. Это может быть связано с одной и той же ситуацией, упомянутой во всех этих ценных сообщениях выше. Это может быть связано с «компиляцией при сохранении», особенно при использовании компиляции классов в реальном времени с помощью javax.tools. Иногда полное удаление кэша netbeans решает проблему, но иногда после удаления кэша мне приходилось очищать и компилировать проект перед его запуском.
Итак, подводя итог, возможным способом может быть:
- Удалите кэш netbeans и попробуйте включить / выключить настройку «компиляция при сохранении»
- Очистите и скомпилируйте, затем запустите проект
…в следующий раз, когда это внезапно произойдет, повторите эти шаги. Это также может отображаться как ошибка «classloader» или «не удается найти основной класс». Ошибка.