声明的包与预期的包""不匹配

80 java eclipse

我正在使用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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的项目名称是DeviceDDS.

can*_*nge 63

尝试关闭并重新打开该文件.

当文件位置或包声明完全没有问题时,可能会在eclipse中出现此错误.在花费大量时间尝试这些其他解决方案之前尝试一下.有时日食会让人感到困惑.它在很多场合对我有用.我的信用理念,以约书亚·戈德堡.

  • 至少,这对我来说是工作!谢谢 (2认同)
  • VS Code内的Gradle项目遇到此问题。重新打开固定它。 (2认同)
  • 在 eclipse 编辑器中打开和关闭文件有助于解决问题。我在 java config build - source 选项卡中添加了一个源文件夹,错误没有删除,但是当我在 eclipse 中关闭并打开编辑器时,它有所帮助。:-) (2认同)
  • 呵呵..我花了一个小时试图修复它,然后看到了这个。 (2认同)

Jon*_*eet 46

Eclipse期望声明的包与目录层次结构匹配 - 因此它希望您的Java文件位于源根目录下名为"Devices"的目录中.目前看起来该文件直接位于源根目录中.因此,创建适当的目录,并在那里移动文件.

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

com.foo.devices;
Run Code Online (Sandbox Code Playgroud)

  • 如何禁用此功能?我的项目在终端完美编译.. (5认同)
  • @Sakti:据我所知,你不能,我强烈建议你不要,即使你可以.*所有*经验丰富的Java开发人员都希望您遵循常规约定. (3认同)

nan*_*eck 43

解决方案1:当我从eclipse CVS检出的项目出现此错误" 声明的包与预期的包不匹配 "时,一个解决方案对我有用:

1.右键单击导航栏上的项目,然后单击"删除"
2.确保" 磁盘上删除的项目内容 "选项选中,然后单击确定.
3.现在删除项目后,转到文件 - >导入 - >常规 - >现有项目到工作区
4.从目录列表中选择工作区,然后选中项目名称旁边的框.点击" 完成 "

解决方案2:我再次收到此错误,并显示以下消息

Eclipse构建错误 - java.lang.Object无法解析 我不得不按照这里提到的另一条路线而错误消失了.

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

  1. 转到带有构建错误的项目属性(右键单击>属性)查看"构建路径"部分中的"库"选项卡在列表中查找"JRE系统库"(如果缺少此项,则此错误消息不是eclipse错误但错误配置的项目)
  2. 删除"JRE系统库"
  3. 点击"添加库...",选择"JRE系统库"并为项目添加适当的JRE(例如'工作区默认JRE')
  4. 在库选择中单击"完成",在项目属性中单击"确定",然后等待重新构建项目

希望错误将得到解决......

  • 更简单!我刚刚再次使用它,它通过关闭并重新打开单个有问题的文件编辑器而消失了. (12认同)
  • 更简单的解决方案:我再次遇到这种情况,并且能够通过关闭项目,重新启动Eclipse并重新打开项目来使其工作. (10认同)
  • 很讨厌,但这对我有用!干杯! (4认同)
  • 重启eclipse似乎解决了这个问题. (4认同)

aya*_*sca 10

我有这个问题 - 我的包中的其他类都很好,但是一个类有错误.包裹声明没有任何问题.

我通过执行修复它,refactor->move并暂时将类移动到另一个包,然后refactor->move返回到原始包.


小智 9

我按照以下步骤解决了问题:

  1. 选择项目 - 右键单击​​ - java构建路径.

  2. 在源选项卡中 - 您将更src改为src/main/java.

  3. Eclipse将重新排序所有项目.