Как вы исправляете ClassNotFoundException после того, как вы изменили имя класса при его создании - PullRequest
0 голосов
/ 19 ноября 2010

Я изменил имя одного из моих классов Java, и теперь я получаю исключение classNotFoundException после очистки и восстановления в eclipse. Я думаю, что это тривиально, и что я забыл когда-то известное решение! Есть идеи?

Edit: Я закончил тем, что делал самое медленное решение, просто создав новый проект и поместив в него весь код ...

Ответы [ 2 ]

3 голосов
/ 19 ноября 2010

Вы использовали рефакторинг Eclipse? Или вам еще нужно организовать импорт некоторых файлов?

Редактирование на основе обратной связи с оператором:

Eclipse часто делает много вещей для разработчиков Java в фоновом режиме. Среди них - импорт в ссылку на класс в другом файле класса. Если вы переименовали класс (а это класс верхнего уровня, для которого назван файл), компилятор сначала пожалуется на это. Предположим, вы переименовали и класс, и файл, теперь любой другой файл Java, который ссылался на предыдущее имя класса, больше не будет компилироваться. Для того, чтобы все заработало снова, вам нужно пройти и исправить объявления импорта, а также ссылки на код в любом файле, который указывает, что он не компилируется. Eclipse также использует инкрементную компиляцию и поддерживает модель памяти разрабатываемых проектов. Убедившись, что на самом деле ошибок нет, если утилита clean не работает, попробуйте закрыть eclipse, вручную удалить содержимое каталога bin и затем перезапустить eclipse. Это должно заставить его выполнить полную сборку проекта.

В будущем, чтобы полностью избежать этой проблемы, всегда используйте утилиту рефакторинга, встроенную в eclipse. Рефакторинг так же просто, как выбрать файл, класс, метод или имя переменной и нажать alt + shift + r и ввести новое желаемое имя. Преимущество рефакторинга состоит в том, что он автоматически отследит все ссылки на код (то есть имеет доступ) для разработчика.

1 голос
/ 19 ноября 2010

Используйте рефакторинг в следующий раз.Теперь попробуйте удалить уже созданные классы и снова скомпилировать.

...