为什么Java源文件会进入目录结构?

时间:2010-06-09 10:09:47

标签: java directory-structure conventions

因为我们假设我正在创建一个包含以下类的Java项目

  1. com.bharani.ClassOne
  2. com.bharani.ClassTwo
  3. com.bharani.helper.HelperOne
  4. com.bharani.helper.support.HelperTwo
  5. 将文件直接放在文件夹'src'

    1. 的src / ClassOne.java
    2. 的src / ClassTwo.java
    3. 的src / HelperOne.java
    4. 的src / HelperTwo.java
    5. 使用命令

      编译它们
        

      $ javac -d classes src / * .java(假设classes目录存在)

      编译器编译这些文件,并将类文件放在'classes'目录下的相应子目录中,如下所示

      1. 类/ COM / bharani / ClassOne.class
      2. 类/ COM / bharani / ClassTwo.class
      3. 类/ COM / bharani /辅助/ HelperOne.class
      4. 类/ COM / bharani /辅助/支持/ HelperTwo.class
      5. 因为规范要求类应该进入适当的目录结构。细

        我的问题是:当我使用诸如 Eclipse NetBeans 之类的IDE时,他们会为源代码目录创建目录结构('src'目录也在这里)。这是为什么?这是强制性的吗?或者,这只是一个惯例吗?

        感谢。

3 个答案:

答案 0 :(得分:5)

主要是惯例。镜像二进制结构的源是有意义的。

此外,如果您有两个具有相同名称的类(但在不同的包中),如果不在不同的目录中,您将如何存储源?

将源保存在一个文件夹中对于小项目来说很好,但是一旦你有一个更大的项目(数百个类),将源分组到包中会使事情变得更容易管理。

答案 1 :(得分:4)

Is it mandatory? 

没有

Or, is it just a convention?

是的,以反映源树中的包结构。

我一直认为Java的有点破碎:

它似乎是层次化的,但事实并非如此。

它是一个简单的(唯一的)前缀来定义单独的普通命名空间。

答案 2 :(得分:1)

我认为这是强制性的,但您的经验表明不是这样。无论哪种方式,这只是常识,对吧?大型项目有很多源文件 - 为什么通过为源文件和类文件设置不同的结构会使生活变得更复杂?