Подтвердить что ты не робот

Почему не может eclipse разрешить класс в одном пакете?

Я ударил F5 ~ 1000 раз и перезапустил eclipse (также с -clean), удалил /bin, но ничего не помогает. Вручную импортировать DoodleClient не помогает. DoodleClient существует и отлично работает, все работает раньше. Нажатие на "Импортировать" DoodleClient "..." ничего не делает.

Что я сделал до возникновения этой проблемы:

  • Я добавил *.class в .gitignore
  • git rm *.class
  • При следующем нажатии хандры файлов .class были удалены с помощью git

enter image description here

4b9b3361

Ответ 1

Я мог бы решить это: В другом проекте (из того же git repo) у меня была такая же проблема для нескольких файлов в разных пакетах. Все, что мне нужно было сделать, это записать в файл белое пространство, удалить его снова и сохранить, поэтому eclipse перекомпилирует его (я думаю).

Какое-то странное поведение...: S

Ответ 2

В качестве альтернативы вы можете выделить проект:

Выберите Clean ... в меню Проект, и если вы активировали опцию Build Automatically (в том же меню), классы будут генерироваться заново.

Ответ 3

Я получил ту же ошибку в проекте Maven. Запуск Maven Clean и закрытие проекта и повторное открытие не помогли мне. Проект правой кнопки мыши → Maven → Проект обновления работал у меня.

Ответ 4

Я попытался обновить рабочую область (F5) и очистить проект, но это не помогло. Для меня это было правой кнопкой мыши по проекту и выберите "Закрыть проект".

После закрытия я снова открыл проект. Это, казалось, обновило все файлы для проекта в Eclipse.

Ответ 5

К счастью, у меня не было 1000 ошибок; для моих проблем с разрешением класса 20+ я сделал следующее:

  • Удалить часть имени класса-нарушителя
  • Поместите курсор в конец (оставшегося фрагмента имени класса), сделайте автоматическое предложение (Ctrl + пробел) и выберите правильный класс из предложений
  • Сохранить

Задумчивый, но он сработал.

Ответ 6

Первое, что я хотел бы сделать, это создать новый класс в одном пакете и проверить, видно ли это из этого класса, где у вас есть проблема.

Также я не уверен, но вы можете проверить, чтобы изменить имя вашего класса "D" для чего-то другого.

и... Проверьте, действительно ли файл существует

Ответ 7

У меня была та же проблема. Я попытался снова добавить оператор с вызовом статического метода и удалить старый. Eclipse даже помог мне с автозавершением, и после этого он снова подчеркнул выражение. В моем случае закрытие проекта и его импорт снова после этого.

Ответ 8

У меня есть 3 проекта в моем проводнике проектов, и они имеют зависимости друг от друга.

Все они сошли с ума, и у меня было 9000+ ошибок во всех трех проектах.

Оказалось, что очистка каждого из них в правильном порядке (средняя, ​​верхняя, нижняя) разрешает все.

Уборка в правильном порядке - это то, что исправила мою проблему.

Просто подумал, что стоит упомянуть:)

Ответ 9

Компилятор проверяет зависимости от скомпилированных файлов, а не от исходного кода. Таким образом, это означает, что компилятор не загружает DoodleClient.class. Чтобы проверить, есть ли у вас скомпилированный класс, откройте представление Navigator (Window -> Show View -> Navigator) и найдите каталог, содержащий файлы .class(обычно bin/<project> или target/classes для Maven) и проверьте, есть ли у вас DoodleClient.class файл. Если вы этого не сделаете, вы можете:

  • проверьте файл .classpath, чтобы увидеть, появляется ли DoodleClient.java в некотором атрибуте excluding в некотором классеpathentry (удалите его из атрибута исключения, если он это делает)
  • если вы используете Maven, проверьте, появляется ли DoodleClient.java в <exclude> </exclude> тег в pom.xml
  • скопируйте необходимые java файлы/пакеты в какую-либо другую папку на вашем диске, скомпилируйте DoodleClient.java вручную из консоли dos с помощью javac, а затем скопируйте DoodleClient.class в свою папку классов в вашем проекте. Надеюсь, это поможет.

Ответ 10

У меня одна и та же проблема каждый день, и решение разное каждый раз. :) Вы можете попробовать что-то вроде этого:

  • Меню проекта - Чистый
  • Project - Maven - обновление проекта (Alt + F5)
  • Проект - Обновить
  • Проект - Запуск от имени - Maven clean
  • Project - Запуск от имени - Maven установка
  • Перезапустите Eclipse
  • Удалить приложение из контейнера сервлета (если это веб-приложение)
  • Молись.. :)

Ответ 11

None Ничто из вышеперечисленного не сработало.

Однако я могу исправить это так:

  1. Установлена новая версия Eclipse
  2. Открыто новое рабочее пространство
  3. Клонировал мои проекты Maven из моего репозитория Git в новое рабочее пространство
  4. Импортировал их в Eclipse как Maven Projects

Результат: Eclipse снова находит классы.

Ответ 12

В моем случае класс DoodleClient прокомментировал все свои строки. Это не то, как я написал класс, это был побочный эффект неправильного решения конфликта SVN. Так что, если вы только что запустили обновление своего проекта, возможно, вы захотите еще раз проверить содержимое вашего файла.

Ответ 13

Щелкните правой кнопкой мыши на проекте, затем R-щелкните на Maven, затем Обновить проект.

Ответ 14

Перепробовал многие из приведенных выше предложений без успеха (перезапуск Eclipse, очистка несколько раз, автоматическое предложение и т.д.). То, что вытащило меня из этой привязки, было жестким сбросом к предыдущему коммиту (я использую git), построению (на этот раз без успеха), затем извлечению последних источников проекта и повторной сборке.

Ответ 15

В моем случае это было так, что мой Java Build Path → Source не проверил содержит тестовые источники в моем пути к исходным файлам, и мой код был JUnit