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

Eclipse: объявленный пакет не соответствует ожидаемому пакету

У меня проблема с импортом внешнего проекта. Я иду Файл → Импорт... → Существующие проекты в Рабочую область, выберите папку, в которой расположен проект, и все импортировано, но имена пакетов проекта, похоже, не соответствуют ожидаемым Eclipse. Все имена пакетов имеют префикс:

prefix.packagename1
prefix.packagename2

и др.

Но Eclipse ожидает

src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2

и т.д.. потому что каталог является src/prefix1/prefix/package1

Я действительно не хочу возиться с внешним кодом. Как сообщить Eclipse игнорировать каталог "src/prefix1"? Или что еще я могу сделать?

4b9b3361

Ответ 1

Просто войдите в путь сборки и измените исходный путь на src/prefix1 вместо src.

Возможно, проще всего щелкнуть правой кнопкой мыши по каталогу src и выбрать "Путь сборки/Удалить из пути сборки", затем найти каталог src/prefix1, щелкнуть по нему правой кнопкой мыши и выбрать "Путь сборки/Использовать как исходную папку".

Ответ 2

Я просто столкнулся с этой проблемой, и поскольку решение г-на Скита не сработало для меня, я расскажу, как я решил эту проблему.

Оказывается, я открыл java файл под "src", прежде чем объявлять его исходным каталогом.

После щелчка правой кнопкой мыши по каталогу src в eclipse, выберите "путь сборки", а затем "Использовать в качестве исходной папки"

Закрыть и снова открыть уже открытый Java файл (обновление F5 не работает).

Если путь к java файлу из префикса 1 начинается с пакета в файле (пример из запроса-запроса prefix1.prefix.packagename2). Это должно работать

Eclipse больше не будет жаловаться на 'src.'

Ответ 3

Переместите вашу проблему *.java файлы в другую папку.

Нажмите "src" и нажмите "F5".

Красные кресты расходятся.

Верните файлы *.java в "путь к пакету", нажмите "src" и нажмите "F5".

Все должно быть хорошо.

Ответ 4

Если вы импортировали существующий проект, просто удалите исходные папки, а затем добавьте их снова, чтобы создать путь, и перезапустите eclipse. В большинстве случаев eclipse будет продолжать показывать ошибку до перезапуска.

Ответ 5

Случается для меня после неудачных сборок за пределами среды IDE. Если очистка рабочего пространства не работает, попробуйте: 1) Удалить все проекты 2) Закройте и перезапустите STS/eclipse, 3) Повторно импортируйте проекты

Ответ 6

Предположим, что в вашем проекте есть пакет, например package name1.name2.name3.name4 (объявленный пакет)

Проводник вашего пакета показывает, как верхнего уровня пакета с именем name1.name2
подпакеты с именем name3.name4

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

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

Сначала я попробовал Build Path.Java Build Path.Source Tab.Link Source Button. Перейдите в папку перед именем1 в вашем пакете. Имя файла, как вам нравится (я думаю). Но были проблемы.

Затем я удалил папку из пути сборки и попытался Файл > Импорт... > Общие > Файловая системa > нажмите "Далее" > "От каталога" > "Обзор"... в папку выше name1 > нажмите кнопку "Дополнительно" > "Проверить ссылки" в рабочей области > нажмите кнопку "Готово".

Ответ 7

Я получаю эту проблему в Eclipse иногда при импорте проекта Android, у которого нет файла .classpath. Тот, который создает Eclipse, не совсем тот, который ожидает Android. Но файлы Android.classpath обычно являются относительными, поэтому я просто скопирую правильный файл .classpath из другого проекта по некорректному .classpath. Я создал видео, которое показывает, как я это делаю: https://www.youtube.com/watch?v=IVIhgeahS1Ynto

Ответ 8

Перейдите в папку src проекта и скопируйте весь код из него в некоторое временное место и создайте проект. И теперь скопируйте фактический код из временного местоположения в проект src. И запустите сборку снова. Проблема будет решена.

Примечание. Это характерно для затмения.

Ответ 9

Единственное, что сработало для меня, - это удалить проект, а затем импортировать его снова. Работает как шарм:)

Ответ 10

У меня была такая же проблема только сейчас. Однако первые несколько ответов не работают для меня. Я предлагаю решение: измените файл .classpath. Например, вы можете определить путь classpathentry node например: path = "src/prefix1/java" или path = "src/prefix1/resources". Надеюсь, это поможет.

Ответ 11

Для меня проблема заключалась в том, что я конвертировал существующий проект в maven, создал структуру папок в соответствии с документацией, и она показывала "основную" папку как часть пакета. Я следовал инструкциям, аналогичным Jon Skeet/JWoodchuck, и вошел в путь сборки Java, удалил все неработающие пути сборки, а затем добавил свой путь сборки к src/main/java и src/test/java. как папки ресурсов для каждой, и это решило проблему.

Ответ 12

  • Щелкните правой кнопкой мыши по внешней папке с пакетом
src.prefix1.prefix.packagename1 
src.prefix1.prefix.packagename2
  1. Нажмите "Путь сборки" → "Удалить из пути сборки".

  2. Теперь перейдите в префикс папки1 в разделе папок вашего проекта.

  3. Щелкните правой кнопкой мыши по нему → Путь сборки → Используйте как исходную папку.

  4. Готово. Папка пакета теперь не будет отображаться. Если он все еще отображается, просто перезапустите проект.