声明的包与预期的包“”不匹配

我正在使用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

Eclipse期望声明的包匹配目录层次结构 – 所以它期望您的Java文件位于源根目录下的“Devices”目录中。 目前看起来这个文件直接在你的源代码中。 因此,创build适当的目录,并在那里移动文件。

请注意,传统上,软件包是小写字母,并且以反向DNS顺序包含您的组织名称,例如

 com.foo.devices; 

解决scheme1:当我从eclipse CVS签出的项目发生这个错误“ 声明的包与预期的包不匹配 ”时出现了一种解决scheme:

1.右键单击导航栏中的项目,然后单击“删除”
2.确保“ 删除磁盘上项目内容 ”选项被选中,然后单击“确定”。
3.删除项目后,进入文件 – >导入 – >常规 – >现有项目到工作区
4.从目录列表中select您的工作区,并选中项目名称旁边的checkbox。 点击“ 完成

解决scheme2:我再次遇到以下消息的这个错误

Eclipse构build错误 – 无法解决java.lang.Object我不得不按照这里提到的另一个路由,错误消失了。

与此同时,解决方法是从项目中删除JRE系统库,然后再将其添加回来。 这里是步骤:

  1. 转到具有构build错误的项目属性(右键单击>属性)在“构buildpath”部分中查看“库”选项卡在列表中find“JRE系统库”(如果缺less,则此错误消息不是日食错误,但一个错误configuration的项目)
  2. 删除“JRE系统库”
  3. 点击“Add Library …”,select“JRE System Library”并为项目添加合适的JRE(例如“工作区默认JRE”)
  4. 点击库选项中的“完成”和项目属性中的“确定”,然后等待项目的重新构build

希望错误将被解决…

尝试closures并重新打开文件。

当文件位置或包声明完全没有错误时,在eclipse中可能会出现这个错误。 在花费大量时间尝试这些其他解决scheme之前,尝试一下。 有时候月蚀会让人困惑。 这在很多情况下都适用于我。 我赞赏Joshua Goldberg的想法。

我遇到了这个问题 – 我包里的其他类都没问题,但是有一类错误。 包声明没有错。

我通过refactor->move并将其移动到另一个软件包中,然后refactor->move回到原始软件包。

我通过以下步骤解决了问题:

  1. select项目 – 右键单击​​ – java构buildpath。

  2. 在源代码标签 – 你把src改为src/main/java

  3. Eclipse将重新排列所有项目。

你需要有一个文件夹里面的类Devices

在您的项目中创build一个名为“设备”的新软件包,并将其放入您的课堂。 这相当于放置在项目源文件夹中名为“Devices”的目录中的类。

确保Devices被定义为项目属性中的源文件夹。

得到了同样的错误,但我的包是绝对正确的。 当我closures并打开我的编辑器时,错误消失。 希望这可能有助于在某些情况下。

确保您已经创build了正确的包。您可能有机会创build文件夹而不是包

  1. 在工程的工作区根目录下创build目录[your.project.name]。

  2. 将* .java从“src”复制到该目录。

  3. closures并重新打开项目。

这发生在我从eclipse的svn仓库中检出一个项目时。 在我的.m2文件夹中有eclipse没有看到的jar文件。 要解决这个问题,我做了:

右键点击项目文件夹Configure> Convert to Maven Project

并解决了这个问题。

有一百万个答案,但还有另外一个答案:将这些文件复制到一个新的软件包中,删除旧的软件包并将新的软件包重命名为旧的软件包名称。

确保你没有使用默认包。 创build一个名称为“devices”的新包,并将其复制到其中并使用。

当我从其他软件包/项目复制类时,我有这种情况。

菜单 – >项目 – >清洁通常有帮助。

在我的情况下,我select了问题标签中的错误标记,并将其删除,因为Java的文件main方法正在被正确执行。 Eclipse Neon中安装了大量的插件,这是一个小故障。

我通过删除我的.classpath文件中该包的“排除”属性来解决这个问题。 删除属性,而不是整个标签,或“src / java”将不再是一个源文件夹。

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