Java编译器行为问题

Rav*_*kar 1 java

我在同一个包中有一个接口及其实现类.我在命令行中使用javac来编译它们.我能够成功编译接口类,但是在编译接口类后尝试编译实现类时,我收到错误 - 找不到符号.但是,由于接口及其实现都在同一个文件夹中,如果我执行Javac*.我能够编译它们.

有人能帮我理解这种行为吗?谢谢你的时间

rsp*_*rsp 5

Java编译器通过文件名约定查找包,a.b.c.Interface被解释为查找接口a/b/c/Interface.class

如果从类路径的根运行javac,编译器将找到您的接口.即如果您的包是D:\sources\a\b\c,请启动javac D:\sources并编译a\b\c\Impl.java