Eclipse не компилирует java файлы в классы

Я понятия не имею, почему, но с сегодняшнего дня Eclipse не компилирует .java файлы в .class. Я нажимаю кнопку "Запустить", и Eclipse пытается запустить программу, а затем сначала скомпилирует ее, поэтому я получаю эту ошибку все время:

Exception in thread "main" java.lang.NoClassDefFoundError

Ответы

Ответ 1

Эта проблема возникает, когда "по некоторым причинам" ваш проект поврежден и имеет красный значок рядом с именем проекта в Eclipse. Решение состоит в том, чтобы сохранить папку проекта, удалить проект в Eclipse, а затем снова создать проект в Eclipse, выполнив все предыдущие сохраненные файлы.

Ответ 2

открыть проблемы из окна → показать вид → проблемы, если есть какая-либо ошибка, исправить его

eclipse откажется компилировать, если есть какие-либо проблемы в вашем проекте

Ответ 3

Закрыть проект → Открыть проект → Очистить → Обновить

Надеюсь, что это поможет кому-то еще.

Ответ 4

Я столкнулся с этой проблемой с Eclipse Luna, по какой-то причине Java-конструктор отсутствовал в проекте. Убедитесь, что в вашем .project файле у вас есть что-то вроде

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>     
</buildSpec>

Вы также можете настроить сборщиков из Project Properties → Builders

Ответ 5

Когда у меня была точно такая же проблема, ее причина всегда была одинаковой, и решение работало для меня 100% времени. Это вызвано отсутствием jar файла в пути сборки Java проекта и обозначено красным восклицательным знаком на значке проекта. Чтобы решить эту проблему, перейдите в Project | Properties | Java Build Path, перейдите на вкладку Libraries и либо удалите, либо исправьте путь для всех отсутствующих jar файлов. Если ваш проект настроен на автоматическую перестройку, он должен начать сборку, как только вы примените свои изменения.

enter image description here

Ответ 6

Затмение должно стирать выходную папку при создании классов.

Папка найдена на Project Properties -> Java Build Path -> Default Output Folder. Он может отличаться от общего имени папки вывода, найденного в Eclipse Preferences. Если эта выходная папка не может быть стерта по какой-либо причине (например, в Windows, когда оболочка открыта в этом месте), проект помечается как поврежденный (как описывает Марко Мичели), и классы тогда не создаются.

Вам просто нужно убедиться, что папка вывода может быть удалена.

Ответ 7

  • могут быть ошибки в вашем проекте или другие причины, упомянутые в приведенных выше ответах.
  • или вы можете быть дураком, как я.

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

Гото Свойства проекта → Путь сборки Java → Источник

Добавить или связать местоположение новой исходной папки.

Ответ 8

Да, я столкнулся с этой проблемой. Coz Eclipse не может создать проект для ошибки Build Path. Убедитесь, что ваши внешние файлы jar не показывают никаких ошибок. Удалите файл Jar, который отсутствует, или какой-либо цвет. удалите это. добавьте свежую информацию из правильного пути или местоположения. если все ошибки исчезли. то в папке bin проекта будет создан один файл класса, после чего также не будет загружена ошибка основного класса.

Ответ 9

Очистите все проекты! Это приведет к стиранию всех старых файлов классов, поэтому eclipse вынужден их генерировать снова.

Ответ 10

Несколько раз банки в пути сборки могут отсутствовать, даже если мы его не используем. Поскольку существует ошибка, java файлы не будут компилироваться в классы. Может проверять ошибки из вида проблем.

Либо удалите банки из пути сборки, либо поместите недостающие банки в путь сборки.

Ответ 11

У меня возникла проблема с eclipse для загрузочного модуля, и файл класса не создавался. Решение. Нажмите "Создать новый проект" > "В разделе JRE" Выберите "Использовать конкретный проект JRE". Теперь создаются файлы классов.

Ответ 12

Пожалуйста, проверьте, все ли банки есть в настройках пути сборки. Если какая-либо банка отсутствует, эта проблема может возникнуть.

Ответ 13

Также убедитесь, что в пути сборки проекта нет проектов с фатальными ошибками (проекты с символом!), который не генерирует классы в каталоге bin

Ответ 14

Просто перезагрузите компьютер. Это странно, но это помогает нам иметь множество проблем такого типа в нашей компании по неизвестной причине. Помогла перезагрузка машины. Он обычно встречался при попытке запуска тестов Junit и не мог найти класс, даже если в настройке Run была указана опция/bin.

Ответ 15

У меня возникла аналогичная проблема: ранее скомпилированные и запущенные java файлы больше не могли запускаться. Eclipse показал, что "не удалось найти класс xxxx". Когда я проверил папку bin, предыдущие файлы .class исчезли. Именно поэтому Eclipse не смог запустить файлы, а не из-за ошибок в файлах. Я не знаю, почему он не может просто перекомпилировать файл и почему файл .class пропал в первую очередь.
Но я нашел решение:
Просто создайте фиктивный java файл в том же пакете (без чего-либо просто созданного), а затем запустите его. Затем волшебным образом все предыдущие .class файлы вернулись. И я могу запустить эти файлы, как и раньше.

Ответ 16

Просто удалите все банки (библиотеки) из пути сборки и обновите и добавьте все банки, очистите и создайте проект

Ответ 17

Это, вероятно, редкое событие, но я объявил сервлет с аннотациями и оставил "/" до имени отображения сервлета. Я потратил более часа на то, чтобы преследовать мой хвост, устанавливая новые серверы, думая, что мне может даже понадобиться переустановить мою среду IDE, и это была простая ошибка! Каждый раз, когда я пытался загрузить любую страницу из своего проекта Dynamic Web Project, я получил ошибку 404. Я даже не мог загрузить обычную страницу html с ванилью. Там действительно должно быть лучшее протоколирование ошибок при взаимодействии с IDE и сервером, так как указана ошибка, и мой сервлет никогда не вызывался в начале моего веб-приложения. Надеюсь, это поможет спасти кого-то еще от разочарования. Всегда называйте свой сервлет с помощью /slash, например/myServlet, никогда не только myServlet.

Ответ 18

Я испробовал много разных потенциальных решений: очистка, восстановление, удаление, повторный импорт, обновление проекта Maven и ничего. Я все еще не мог запустить свое приложение из Eclipse. В моем случае причиной было, что я запускал Eclipse, используя openjdk-11, в то время как мой проект был в Java 8. После того, как я переконфигурировал Eclipse для запуска с Java 8, все начало работать (в eclipse.ini).

-vm
/usr/lib/jvm/jdk1.8.0_202/bin

Ответ 19

Было бы так: если вы открыли проводник проекта в eclipse, он может не показывать классы, сгенерированные в /**/build/classes, в этом случае открыть представление Navigator этого проекта и проверить каталог сборки под тем же проект.