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