我在我的驱动器中创建了一个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
...任何人都可以解决它吗?
答案 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
你还记得吗?