Как вы восстанавливаете ClassnotfoundException после того, как вы изменили имя класса, зная его
-
26-09-2019 - |
Вопрос
Я изменил имя одного из моих классов Java, и теперь я получаю класснотФузекс восприятие после уборки и восстановления в затмении. Я думаю, что это тривиальное и что я забыл когда-то известное решение! Есть идеи?
Редактировать: Я закончил делать самое медленное решение, просто создавая новый проект и вкладывая весь код в него ...
Решение
Вы использовали рефакторинг Eclipse? Или вам нужно пойти организовать импорт некоторых файлов еще?
Редактировать на основе OP обратной связи:
Затмение часто делает много вещей для разработчиков Java на заднем плане. Среди них включает в себя импорт в ссылку на класс в другом классе. Если вы переименованы в класс (и это класс верхнего уровня, для которого назван файл), компилятор будет сначала жаловаться на это. Предположим, вы переименовываете как класс, так и файл, теперь любой другой файл Java, который ссылается на имя предыдущего класса, больше не скомпилируется. Чтобы получить все возможное, вам нужно будет пройти и исправить декларации импорта, а также ссылки кода в любом файле, который указывает, что он не скомпилируется. Eclipse также происходит с использованием инкрементных компиляций, а также поддерживать модель памяти разработанных проектов. После проверки того, что на самом деле нет ошибок, если использование чистой утилиты не работает, попробуйте закрыть Eclipse, удаление содержимого каталога Bin вручную, а затем перезапустить Eclipse. Это должно заставить его выполнять полную сборку проекта.
В будущем, чтобы полностью избежать этой проблемы, обязательно используйте утилиту рефакторов, встроенной в Eclipse. Рефакторинг так же просто, как выбрать имя файла, класса, метода или переменной, и нажатие Alt + Shift + R и заполнение нового желаемого имени. Преимущество рефакторинга состоит в том, что он автоматически преследует все ссылки на код (у него есть доступ к) для разработчика.
Другие советы
Используйте Refactor в следующий раз. К настоящему времени попробуйте удалить уже построенные классы и снова компилировать.
Если у кого-то есть подобная ошибка со мной и не повезло после чистого проекта, у него есть переименованные старые классы в определенном файле XML (например, WebApp / Web-inf / Spring / Grape-Servele.xml в моем случае), вы должны Вручную измените его на новое имя класса, а затем решат вопрос.