包结构应该与Eclipse中的Java目录结构相同。 我试图浏览有关Oracle Java文档的正式文档,但无处可查找此规则
此规则是否扩展到其他IDE(如Netbeans),或者这是Java语言本身的规则吗? 这个规则有多严格,是否可以偏离,为什么会这样做?
答案 0 :(得分:3)
在JLS中指定编译器可能需要:
存储在文件系统中的软件包可能对其编译单元的组织有一定的限制,以允许简单的实现轻松地查找类。
例如,如果您在命令行中为javac指定了所有源文件名,那么 不能遵循这些规则......但它几乎是普遍使用过,除了微小的测试之外,我不会梦想违反这条规则。
请注意,默认情况下,无论包结构如何,javac都会将类文件生成为源文件的对等项;如果指定-d
,它将生成适当的输出结构,即使它与源结构不匹配。
答案 1 :(得分:1)
它不是特定于IDE的。目录结构和包结构应该相互匹配。您可以在Java规范和认证书籍中找到更多详细信息。
答案 2 :(得分:1)
也许您需要查看a good tutorial about packages。链接的第一句话:
Java平台的许多实现依赖于分层文件系统来管理源文件和类文件,尽管Java语言规范不要求这样做。
答案 3 :(得分:1)
不是真的。您可以拥有以下代码,而无需将其放在my/app
文件夹
package my.app;
public class Tmp{
}
并在命令提示符下编译没有错误。
但是为了运行应用程序,类文件需要在包中提到的文件夹中。
正如Jon Skeet提到的更多用于组织目的,以便在存在冲突的类名时可以解决运行时间。