Объявленный пакет не соответствует ожидаемому пакету ""
Я использую 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 ответов:
Eclipse ожидает, что объявленный пакет будет соответствовать иерархии каталогов - поэтому он ожидает, что ваш файл Java будет находиться в каталоге под названием "устройства" под вашим исходным корнем. На данный момент это выглядит как файл находится непосредственно в корне источника. Поэтому создайте соответствующий каталог и переместите файл туда.
обратите внимание, что обычно пакеты находятся в нижнем регистре и включают имя вашей организации в обратном порядке DNS, например
com.foo.devices;
Решение 1 : одно решение, которое работало для меня, когда эта ошибка "объявленный пакет не соответствует ожидаемому пакету " произошло для проекта, который я проверил из eclipse CVS:
1.Щелкните правой кнопкой мыши проект в панели навигации и нажмите кнопку 'Удалить'
2.Убедитесь, что 'удалить содержимое проекта на диске - это не проверено и нажмите кнопку ОК.
3.Теперь после того, как проект будет удален, перейдите к File - > Import - >Общие - > существующие проекты в рабочее пространство
4.Выберите рабочее пространство из списка каталога и установите флажок рядом с именем проекта. Нажмите' Finish'решение 2 : еще раз я получил эту ошибку со следующим сообщением
ошибки сборки Eclipse-java.ленг.Объект не может быть разрешен Мне пришлось следовать другим маршрутом, упомянутым здесь, и ошибка ушла.
в то же время, обходной путь-удалить системную библиотеку JRE из проекта, а затем добавить ее снова. Вот шаги:
- перейдите к свойствам проекта с ошибкой сборки (щелкните правой кнопкой мыши > Свойства) просмотрите вкладку "библиотеки" в разделе "путь сборки" найдите "системную библиотеку JRE" в списке (если это отсутствует, то это сообщение об ошибке не является ошибкой eclipse, а неверно настроенным проектом)
- удалите "системную библиотеку JRE"
- Нажмите "Добавить Библиотеку ...", Выберите "JRE System Library" и добавьте соответствующую JRE для проекта (например. 'Workspace default JRE')
- нажмите " Готово "в выборе библиотеки и" ОК " в свойствах проекта, а затем дождитесь повторной сборки проекта
надеюсь, что ошибка будет решена ...
попробуйте закрыть и снова открыть файл.
эту ошибку можно получить в eclipse, когда нет абсолютно ничего плохого в расположении файла или объявлении пакета. Попробуйте это, прежде чем тратить много времени на попытки этих других решений. Иногда затмение просто запутывается. Это сработало для меня в нескольких случаях. Я кредит идея до Джошуа Голдберг.
у меня была эта проблема - другие классы в моем пакете были в порядке, но один класс имел ошибку против него. В объявлении пакета не было ничего плохого.
я исправил это, сделав
refactor->move
и временно переместил класс в другой пакет, затемrefactor->move
вернуться к оригинальной упаковке.
Я решил проблему, выполнив следующие действия:
выберите проект-щелкните правой кнопкой мыши-путь сборки java.
На вкладке источник - изменить
src
доsrc/main/java
.Eclipse изменит порядок всего проекта.
создайте новый пакет под вашим проектом под названием "устройства" и поместите в него свой класс. Это эквивалентно классу, помещенному в каталог под названием "устройства" в исходной папке проекта.
получил такую же ошибку, но мой пакет был абсолютно правильным. Когда я просто закрыл и открыл свой редактор, ошибка исчезает. Надеюсь, это может помочь в некоторых случаях.
убедитесь, что вы создали правильный пакет.Вы можете получить возможность создать папку вместо пакета
создать каталог [your.project.name] в корневом каталоге рабочей области вашего проекта.
"копировать"*.java из " src " в этот каталог.
закрыть и снова открыть проект.
Это случилось со мной, когда я проверял проект из репозитория svn в eclipse. В моем были файлы jar .папка m2, на которую eclipse не смотрел. Чтобы исправить проблему я так:
щелкните правой кнопкой мыши папку проекта настроить " > " преобразовать в проект Maven
и это решило вопрос.
есть миллион ответов, но вот еще одна: скопируйте файлы в новый пакет, удалите старый пакет и переименуйте новый пакет в имя старого пакета.
убедитесь, что вы не используете пакет по умолчанию. Создайте новый пакет с именем "устройства" и скопируйте этот код внутри него и используйте.
У меня были такие ситуации, когда я копировал классы из других пакетов/проектов.
меню - > проект - >очистить обычно помогает.