2015-09-17 2 views
0

Я случайно удалил файлы классов (все содержимое папки bin на самом деле при попытке настроить репозиторий git).Eclipse не генерирует новые файлы классов при запуске

Теперь, когда я запускаю свою программу на Eclipse, я получаю сообщение об ошибке:

Error: Could not find or load main class BmrMain", and no .class files are generated in the bin folder. 

Я могу легко восстановить проект, но «Build Automatically» включена, поэтому мой вопрос почему Eclipse, не восстановить файлы классов при запуске приложения? Почему мне нужно очистить, а затем перестроить файлы классов, которые нужно воссоздать?

Кроме того, при перемещении моих файлов .src в отдельную папку для тестирования я скомпилирован с помощью командной строки. Он работал, но при компиляции (javac BmrMain.java), следующее сообщение об ошибке выскочило:

Note: BmrMain.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 

Хотя программа работает корректно при вводе java BmrMain. Что означают эти ошибки? У меня есть несколько предупреждений в Eclipse, но они не кажутся большим делом для меня, и, следовательно, я их оставил:

Eclipse screenshot

+0

К вашему второму вопросу, вы пытались запустить 'javac -Xlint: unchecked'? Это именно то, что вам говорит это сообщение. – dimo414

+0

@ dimo414 Нет, у меня нет. В чем именно заключается разница и почему она просит меня сделать это? – user3186023

ответ

1

Затмение будет строить автоматически, когда вы делаете изменения внутри Eclipse,. Он не активно смотрит файловую систему, чтобы увидеть, когда вы удаляете из нее файл. Если вы заблуждаетесь в своей директории проекта за пределами Eclipse, вы всегда должны обновлять проект и, возможно, также должны указать Eclipse для ручной сборки. В противном случае Eclipse предположит, что проект находится в хорошем состоянии (так как он оставил его).

Выводы предупреждения javac сообщают вам, что в вашем классе существуют плохие практики (неконтролируемые приведения, если быть конкретными). Если вы добавите -Xlint:unchecked к вызову javac, он выдаст точно, какие строки являются проблематичными.

Выход будет похож на предупреждения, которые вы уже видите в Eclipse, и они : большое дело. Вы используете raw types, что является очень плохой практикой, которая приводит к ошибкам, затрудняющим работу с кодом. Generics были представлены на Java 5, используйте их.

+0

Игнорировать комментарий раньше, спасибо за подробное объяснение. Я исправил ошибку ComboBox. Теперь я запутался в ошибке сериализации. Когда я пытаюсь исправить это, он спрашивает меня, хочу ли я иметь серийный идентификатор по умолчанию или сгенерированный. Я знаю, что такое сериализация, но я не знаю, как мне сгенерировать идентификатор. Когда вы говорите «обновить проект», вы просто подразумеваете чистоту и перестройку? – user3186023

+0

Если вы щелкнете правой кнопкой мыши по проекту, появится опция «Обновить». Это сканирует файловую систему и будет пытаться создавать любые изменения. – dimo414

+0

Спасибо. Это ничего не делает, папка bin все еще пуста. – user3186023

0

Вам следует избегать удаления файлов, созданных Eclipse из «за пределами Eclipse» (например, через командную строку). Эти изменения автоматически не замечены Eclipse.

Однако Eclipse автоматически заметит изменения в исходных файлах проекта и затем автоматически перестроит необходимые файлы классов.

Также ознакомьтесь с настройками Eclipse (пункт меню «Eclipse> Preferences»). На панели «Общие> Рабочие пространства» вы найдете три флажка, связанные с (автоматическим) обновлением: «Создать автоматически», «Обновить с помощью собственных перехватов или опроса», «Обновить при доступе». Все эти флажки должны быть проверены.

+0

Все эти параметры проверены. Так что же делать, если они возились с файлами .class? Является ли чистая и перестроить единственный возможный вариант для исправления кода? – user3186023

0

В моем случае отсутствовал строитель java. Вероятно, это очень специфическая проблема, которая возникла из-за того, что eclipse в ubuntu не смог импортировать проект git, но в любом случае решение заключалось в редактировании.файл проект, который должен находиться в корневой папке вашего проекта, и это должно выглядеть следующим образом:

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

Так что для меня, добавив линию buildCommand исправил проблему.

Смежные вопросы