2

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

  1. com.bharani.ClassOne
  2. com.bharani.ClassTwo
  3. com.bharani.helper.HelperOne
  4. com.bharani.helper.support.HelperTwo

将文件直接放在文件夹“src”下

  1. src/ClassOne.java
  2. src/ClassTwo.java
  3. src/HelperOne.java
  4. src/HelperTwo.java

并使用命令编译它们

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

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

  1. 类/com/bharani/ClassOne.class
  2. 类/com/bharani/ClassTwo.class
  3. 类/com/bharani/helper/HelperOne.class
  4. 类/com/bharani/helper/support/HelperTwo.class

因为规范要求类应该放在适当的目录结构中。美好的。

我的问题是:当我使用EclipseNetBeans等 IDE 时,它们也会为源代码目录(此处为“src”目录)创建目录结构。这是为什么?它是强制性的吗?或者,它只是一个约定?

谢谢。

4

3 回答 3

6

主要是约定俗成。源镜像二进制结构是有意义的。

另外,如果您有两个同名的类(但在不同的包中),如果不在不同的目录中,您将如何存储源代码?

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

于 2010-06-09T10:12:42.557 回答
5
Is it mandatory? 

Or, is it just a convention?

是的,在源代码树中反映您的包结构。

一直觉得Java的有点破:

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

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

于 2010-06-09T10:19:38.470 回答
1

我认为这是强制性的,但您的经验表明并非如此。不管怎样,这只是常识,对吧?大型项目有如此多的源文件 - 为什么要通过为源文件和类文件设置不同的结构来使生活变得更加复杂?

于 2010-06-09T10:14:01.773 回答