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

2022-08-31 09:08:40

我正在使用Eclipse,并且已经有一段时间没有使用Java了。但是,我可以在命令行上编译我的代码并生成必要的文件。在Eclipse中,它抱怨.这是什么意思,我该如何解决?.classThe 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


答案 1

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

当文件位置或包声明绝对没有问题时,可能会在 eclipse 中得到此错误。在花费大量时间尝试这些其他解决方案之前,请尝试一下。有时日食只是被混淆了。它曾多次为我工作。我把这个想法归功于约书亚·戈德堡(Joshua Goldberg)。


答案 2

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

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

com.foo.devices;

推荐