我正在尝试使用以下类创建compile.bat文件:HumanTest(main方法),Man,Food。以下是3个类的代码。在这种情况下,Food已经编译,我没有.java文件。
package human.man;
public class Man {
private String name;
private Food f;
public Man(String name, Food f) {
this.name = name;
this.f = f;
}
}
public class Food {
private String foodName;
public Food(String name) {
foodName = name;
}
}
import human.man.*;
public class HumanTest {
public static void main (String[] args) {
Food f = new Food("ckt");
Man m = new Man("joe", f);
}
}
在compile.bat中,我运行以下代码
javac -cp classes;src HumanTest.java
但是我得到了无法找到Food类的错误。我想知道为什么会这样,即使我已经为Food.class设置了类路径。以下是文件的链接:https://www.dropbox.com/s/2wussnm55tbnh3t/Question.zip?dl=0
编辑: 下面是树形图,如果我错误地绘制它,请告诉我!
--Question
|--compile.bat
|--HumanTest.java
|--classes
|--Food.class
|--src
|--human
|--man
|--Man.java
答案 0 :(得分:0)
问题与批处理文件无关,但纯粹与您的类的组织有关。您无法从命名包中导入默认包,也无法使用命名包中的类的默认包中的类。
在类human.man.Man中,您正在尝试使用默认包中的类Food。尝试将Food移动到命名包中。