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


Я использую 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.

17 60

17 ответов:

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

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

com.foo.devices;

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

1.Щелкните правой кнопкой мыши проект в панели навигации и нажмите кнопку 'Удалить'
2.Убедитесь, что 'удалить содержимое проекта на диске - это не проверено и нажмите кнопку ОК.
3.Теперь после того, как проект будет удален, перейдите к File - > Import - >Общие - > существующие проекты в рабочее пространство
4.Выберите рабочее пространство из списка каталога и установите флажок рядом с именем проекта. Нажмите' Finish'

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

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

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

  1. перейдите к свойствам проекта с ошибкой сборки (щелкните правой кнопкой мыши > Свойства) просмотрите вкладку "библиотеки" в разделе "путь сборки" найдите "системную библиотеку JRE" в списке (если это отсутствует, то это сообщение об ошибке не является ошибкой eclipse, а неверно настроенным проектом)
  2. удалите "системную библиотеку JRE"
  3. Нажмите "Добавить Библиотеку ...", Выберите "JRE System Library" и добавьте соответствующую JRE для проекта (например. 'Workspace default JRE')
  4. нажмите " Готово "в выборе библиотеки и" ОК " в свойствах проекта, а затем дождитесь повторной сборки проекта

надеюсь, что ошибка будет решена ...

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

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

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

я исправил это, сделав refactor->move и временно переместил класс в другой пакет, затем refactor->move вернуться к оригинальной упаковке.

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

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

  2. На вкладке источник - изменить src до src/main/java.

  3. Eclipse изменит порядок всего проекта.

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

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

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

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

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

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

  2. "копировать"*.java из " src " в этот каталог.

  3. закрыть и снова открыть проект.

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

щелкните правой кнопкой мыши папку проекта настроить " > " преобразовать в проект Maven

и это решило вопрос.

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

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

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

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

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

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

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