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

Я использую Eclipse и никогда не использовал Java. Тем не менее, я могу скомпилировать свой код в командной строке только отлично и сгенерировать необходимые файлы .class. В Eclipse он жалуется, что The declared package "Devices" does not match the expected package "". Что это значит и как я могу это исправить?

Пример кода:

package Devices;

public final class DevFrequency 
{
    public short messageID;
    public double frequency;
    public short converterID;
    public DevFrequency() 
    {
    }
    public DevFrequency(short _messageID,double _frequency,short _converterID)
    {
        messageID = _messageID;
        frequency = _frequency;
        converterID = _converterID;
    }
}

Название моего проекта DeviceDDS.

Ответ 1

Eclipse ожидает, что объявленный пакет будет соответствовать иерархии каталогов - поэтому он ожидает, что ваш файл Java будет находиться в каталоге под названием "Устройства" под вашим исходным корнем. На данный момент это похоже, что файл находится прямо в исходном корне. Поэтому создайте соответствующий каталог и переместите туда файл.

Обратите внимание, что обычно пакеты находятся в нижнем регистре и включают название вашей организации в порядке обратного DNS, например

com.foo.devices;

Ответ 2

Решение 1: Одно решение, которое работало для меня, когда эта ошибка " Объявленный пакет не соответствует ожидаемому пакету", произошел для проекта, который я проверил из eclipse CVS:

1. Щелкните правой кнопкой мыши проект на панели навигации и нажмите "удалить"
2. Убедитесь, что флажок Удалить содержимое проекта на диске 'отмечен НЕ и нажмите "ОК".
3. Теперь после удаления проекта перейдите в Файл → Импорт → Общие → Существующие проекты в рабочее пространство
4. Выберите рабочую область из списка каталогов и установите флажок рядом с названием вашего проекта. Нажмите " Готово"

Решение 2: Снова я получил эту ошибку со следующим сообщением

Ошибки сборки Eclipse - java.lang.Object не может быть разрешен Я должен был следовать за другим упоминанием о маршруте, и ошибка исчезла.

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

  • Перейдите к свойствам проекта с ошибкой сборки (щелкните правой кнопкой мыши > Свойства). Перейдите на вкладку "Библиотеки" в разделе "Путь сборки". Найдите в списке "Системную библиотеку JRE" (если этого не хватает, то это сообщение об ошибке не является ошибкой затмения, но неправильно сконфигурированным проектом)
  • Удалите "Системную библиотеку JRE"
  • Нажмите "Добавить библиотеку...", выберите "JRE System Library" и добавьте соответствующую JRE для проекта (например, "Рабочая область по умолчанию JRE" )
  • Нажмите "Готово" в выборе библиотеки и "ОК" в свойствах проекта, а затем дождитесь повторной сборки проекта

Мы надеемся, что ошибка будет решена...

Ответ 3

Попробуйте закрыть и снова открыть файл.

Эту ошибку можно получить в Eclipse, если в расположении файла или объявлении пакета нет ничего плохого. Попробуйте это, прежде чем тратить много времени на пробу этих других решений. Иногда затмение просто запутывается. Это сработало для меня несколько раз. Я приписываю эту идею Джошуа Голдбергу.

Ответ 4

У меня была эта проблема - другие классы внутри моего пакета были в порядке, но у одного класса была ошибка. В объявлении пакета не было ничего плохого.

Я исправил его, выполнив refactor->move и временно переместив класс в другой пакет, а затем refactor->move обратно в исходный пакет.

Ответ 5

Я решил проблему, выполнив следующие шаги:

  • Выберите проект - Щелкните правой кнопкой мыши - путь сборки java.

  • На вкладке источника - вы меняете src на src/main/java.

  • Eclipse изменит порядок всех проектов.

Ответ 6

Создайте новый пакет под своим проектом под названием "Устройства" и поместите в него свой класс. Это эквивалентно тому, что класс помещается в каталог "Устройства" в исходную папку проекта.

Ответ 7

Вам нужно иметь класс внутри папки Devices.

Ответ 8

Убедитесь, что Devices определяется как исходная папка в свойствах проекта.

Ответ 9

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

Ответ 10

Убедитесь, что вы создали правильный пакет. У вас может возникнуть возможность создать папку вместо пакета

Ответ 11

  • Создайте каталог [your.project.name] в корневом каталоге рабочего пространства вашего проекта.

  • Скопируйте *.java из "src" в этот каталог.

  • Закрыть и снова открыть проект.

Ответ 12

Это случилось со мной, когда я просматривал проект из репозитория svn в eclipse. В моей папке .m2 были файлы jar, которые не наблюдалось затмение. Чтобы устранить проблему, я сделал:

щелкните правой кнопкой мыши папку проекта Configure > Convert to Maven Project

и это решило проблему.

Ответ 13

Есть миллион ответов, но вот еще один: скопируйте файлы в новый пакет, удалите старый пакет и переименуйте новый пакет в старое имя пакета.

Ответ 14

Убедитесь, что вы не используете пакет по умолчанию. Создайте новый пакет с именем "устройства" и скопируйте этот код внутри него и используйте.

Ответ 15

У меня были такие ситуации, когда я копировал классы из других пакетов/проектов.

Меню- > Проект- > Чистота обычно помогает.

Ответ 16

В моем случае я выбрал маркер ошибки на вкладке "Проблемы" и удалил его, поскольку основной метод файла Java был выполнен правильно. Это некоторый сбой в Eclipse Neon с множеством подключаемых модулей, которые он установил.

Ответ 17

Я исправил это, удалив атрибут "исключая" для этого пакета в моем файле .classpath. Удалите атрибут, а не весь тег, или "src/java" перестанет быть исходной папкой.

<classpathentry excluding="com/myproject/mypackage/mysubpackage/" kind="src" path="src/java"/>

Ответ 18

Я тоже столкнулся с этой проблемой, когда импортировал существующий проект для затмения. Это был простой проект, но при импорте я импортировал его как обычный проект, щелкнув General-> Существующие проекты в рабочей области. Чтобы решить эту проблему, я добавил Gradle nature в проект с помощью :: Щелкните правой кнопкой мыши папку Project → Configure-> Add Gradle Nature