Я использую 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
.
/src/Converters
каталоге?Ответы:
Eclipse ожидает, что объявленный пакет будет соответствовать иерархии каталогов, поэтому он ожидает, что ваш файл Java находится в каталоге под названием «Devices» в корневом каталоге исходного кода. На данный момент похоже, что файл находится прямо в корне вашего исходного кода. Итак, создайте соответствующий каталог и переместите туда файл.
Обратите внимание, что обычно пакеты записываются в нижнем регистре и включают название вашей организации в обратном порядке DNS, например
источник
Попробуйте закрыть и снова открыть файл.
Эту ошибку можно получить в eclipse, когда нет абсолютно ничего плохого в расположении файла или объявлении пакета. Попробуйте это, прежде чем тратить много времени на попытки других решений. Иногда затмение просто сбивает с толку. У меня это срабатывало несколько раз. Я связываю идею к Джошуа Голдберг .
источник
Решение 1. Одно решение, которое сработало для меня, когда эта ошибка « Объявленный пакет не соответствует ожидаемому пакету » возникла для проекта, который я получил из eclipse CVS:
1. Щелкните проект правой кнопкой мыши на панели навигации и выберите «Удалить».
2. Убедитесь, что параметр « Удалить содержимое проекта на диске » НЕ установлен , и нажмите «ОК».
3. Теперь после удаления проекта перейдите в Файл -> Импорт -> Общие -> Существующие проекты в
рабочую область. 4. Выберите свое рабочее пространство из списка каталогов и установите флажок рядом с именем вашего проекта. Нажмите " Готово ".
Решение 2. Я снова получил эту ошибку со следующим сообщением
Ошибки сборки Eclipse - java.lang.Object не может быть разрешен. Мне пришлось следовать другому маршруту, упомянутому здесь, и ошибка исчезла.
В то же время необходимо удалить системную библиотеку JRE из проекта, а затем снова добавить ее. Вот шаги:
Надеюсь, ошибка будет устранена ...
источник
Я решил проблему, выполнив следующие действия:
Выберите проект - щелкните правой кнопкой мыши - путь сборки java.
Во вкладке источника - вы меняете свой
src
наsrc/main/java
.Eclipse изменит порядок всего проекта.
источник
У меня была эта проблема - другие классы в моем пакете были в порядке, но один класс имел ошибку. В объявлении пакета не было ничего плохого.
Я исправил это, сделав
refactor->move
и временно переместив класс в другой пакет, а затемrefactor->move
обратно в исходный пакет.источник
У вас должен быть класс внутри папки
Devices
.источник
Создайте в своем проекте новый пакет под названием «Устройства» и разместите в нем свой класс. Это эквивалентно помещению класса в каталог под названием «Devices» в исходной папке проекта.
источник
Убедитесь, что
Devices
он определен как исходная папка в свойствах проекта.источник
Получил ту же ошибку, но мой пакет был абсолютно правильным. Когда я просто закрыл и открыл свой редактор, ошибка исчезла. Надеюсь, это может помочь в некоторых сценариях.
источник
Я исправил это, удалив атрибут "исключения" для этого пакета в моем
.classpath
файле. Удалите атрибут, а не весь тег, иначе «src / java» перестанет быть исходной папкой.<classpathentry excluding="com/myproject/mypackage/mysubpackage/" kind="src" path="src/java"/>
источник
Эта проблема получила решена упоминая пакет имя
Я переместил свой файл Test_Steps.java, который находился в пакете stepDefinition
просто добавив пакет stepDefinition проблема решена
Таким образом, эта проблема может возникнуть, когда у вас есть пакет, который вы не используете в своем файле класса.
Его добавление устранило проблему, и ошибка больше не появлялась.
источник
Убедитесь, что вы создали правильный пакет. У вас может быть возможность создать папку вместо пакета.
источник
Создайте каталог [your.project.name] в корневом каталоге рабочей области вашего проекта.
Скопируйте * .java из "src" в этот каталог.
Закройте и снова откройте проект.
источник
Это случилось со мной, когда я проверял проект из репозитория svn в eclipse. В моей папке .m2 были файлы jar, на которые eclipse не смотрел. Чтобы исправить проблему, я сделал:
щелкните правой кнопкой мыши папку проекта Настроить> Преобразовать в проект Maven
и это решило проблему.
источник
Есть миллион ответов, но вот еще один: скопируйте файлы в новый пакет, удалите старый пакет и переименуйте новый пакет в имя старого пакета.
источник
Убедитесь, что вы не используете пакет по умолчанию. Создайте новый пакет с именем «devices», скопируйте в него этот код и используйте.
источник
У меня были такие ситуации, когда я копировал классы из других пакетов / проектов.
Меню-> Проект-> Очистить обычно помогает.
источник
В моем случае я выбрал маркер ошибки на вкладке «Проблемы» и удалил его, поскольку основной метод файла Java выполнялся правильно. Это некий глюк в Eclipse Neon с множеством установленных плагинов.
источник
Я тоже столкнулся с этой проблемой, когда импортировал существующий проект в eclipse. Это был проект Gradle, но при импорте я импортировал его как обычный проект, щелкнув Общие-> Существующие проекты в Рабочую область. Чтобы решить эту проблему, я добавил в проект Gradle nature: :::: Щелкните правой кнопкой мыши папку Project -> Configure-> Add Gradle Nature.
источник
Я использовал Spring Tool Suite 4. Не смог разобраться в проблеме. Структура каталогов соответствовала имени пакета.
источник
У меня была такая же проблема с проектом maven в Eclipse IDE. Я смог решить эту проблему, заменив файл .classpath на правильный формат. После замены закройте и откройте проект.
Пример файла .classpath
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/webapp"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="src" output="target/test-classes" path="src/test/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> <attribute name="test" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="output" path="target/classes"/> </classpath>
источник