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

新手上路,请多包涵

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

原文由 user195488 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

Eclipse 期望声明的包与目录层次结构相匹配——因此它期望您的 Java 文件位于源根目录下名为“Devices”的目录中。目前看起来该文件直接位于您的源根目录中。所以创建适当的目录,并将文件移动到那里。

请注意,按照惯例,包是小写的,并以反向 DNS 顺序包含您的组织名称,例如

com.foo.devices;

原文由 Jon Skeet 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试关闭并重新打开文件。

当文件位置或包声明完全没有问题时,可能会在 eclipse 中出现此错误。在花费大量时间尝试这些其他解决方案之前先尝试一下。有时日食只是变得混乱。它在很多场合对我有用。我 将这个想法 归功于 Joshua Goldberg

原文由 candied_orange 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题