java包显示错误

时间:2013-12-24 10:20:49

标签: java package

我在我的驱动器中创建了一个java包(os是windows)。包裹的名称是动物。在一个名为Animal.java的java文件中,我写道:

package animals;
   interface Animal   
   {
    public void eat();   
    public void travel();
   }

在另一个名为MammalInt.java的java文件中我写道:

package animals;

public class MammalInt implements Animal {

public MammalInt() {
    System.out.println(this.getClass().getCanonicalName());
}

public void eat() {
    System.out.println("Mammal eats");
}

public void travel() {
    System.out.println("Mammal travels");
}

public static void main(String args[]) {
    MammalInt m = new MammalInt();
    m.eat();
    m.travel();
}
}

当我编译MammalInt.java时出现错误:MammalInt.java:5: error: cannot find symbol public class MammalInt implements Animal ...任何人都可以解决它吗?

2 个答案:

答案 0 :(得分:0)

在Java中,包结构必须为 反映目录结构。

因此,创建一个名为animals的子文件夹 在我的例子中,我在C:\ Various \ code \和
子文件夹是C:\ Various \ code \ animals。

所以把你的两个java文件放在那里(在animals子文件夹中)。

然后转到父文件夹并像这样编译。

    C:\Various\code>dir

     Directory of C:\Various\code

    12/24/2013  05:33 AM    <DIR>          .
    12/24/2013  05:33 AM    <DIR>          ..
    12/24/2013  05:34 AM    <DIR>          animals
                   0 File(s)              0 bytes
                   3 Dir(s)  49,286,955,008 bytes free

    C:\Various\code>javac -cp . ./animals/*.java

    C:\Various\code>

这里-cp指定要使用的类路径。的。告诉编译器
在编译时将当前文件夹包含在类路径中。

答案 1 :(得分:0)

在java中,您需要将类存储在与包相等的目录路径中。例如,假设您的项目位于d:\ users \ fitrat \ project:

d:\users\fitrat\project
d:\users\fitrat\project\animals\Animal.java
d:\users\fitrat\project\animals\MammalInt.java

你还记得吗?