因为我们假设我正在创建一个包含以下类的Java项目
com.bharani.ClassOne
com.bharani.ClassTwo
com.bharani.helper.HelperOne
com.bharani.helper.support.HelperTwo
将文件直接放在文件夹'src'
下使用命令
编译它们$ javac -d classes src / * .java(假设classes目录存在)
编译器编译这些文件,并将类文件放在'classes'目录下的相应子目录中,如下所示
因为规范要求类应该进入适当的目录结构。细
我的问题是:当我使用诸如 Eclipse 或 NetBeans 之类的IDE时,他们会为源代码目录创建目录结构('src'目录也在这里)。这是为什么?这是强制性的吗?或者,这只是一个惯例吗?
感谢。
答案 0 :(得分:5)
主要是惯例。镜像二进制结构的源是有意义的。
此外,如果您有两个具有相同名称的类(但在不同的包中),如果不在不同的目录中,您将如何存储源?
将源保存在一个文件夹中对于小项目来说很好,但是一旦你有一个更大的项目(数百个类),将源分组到包中会使事情变得更容易管理。
答案 1 :(得分:4)
Is it mandatory?
没有
Or, is it just a convention?
是的,以反映源树中的包结构。
我一直认为Java的包有点破碎:
它似乎是层次化的,但事实并非如此。它是一个简单的(唯一的)前缀来定义单独的普通命名空间。
答案 2 :(得分:1)
我认为这是强制性的,但您的经验表明不是这样。无论哪种方式,这只是常识,对吧?大型项目有很多源文件 - 为什么通过为源文件和类文件设置不同的结构会使生活变得更复杂?