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. classes / com / bharani / ClassOne.class
  2. classes / com / bharani / ClassTwo.class
  3. classes / com / bharani / helper / HelperOne.class
  4. classes / com / bharani / helper / support / HelperTwo.class

仕様では、クラスを適切なディレクトリ構造内に配置することが義務付けられているためです。罰金。

私の質問はこれです: EclipseNetBeansなどのIDEを使用すると、ソースコードディレクトリ(ここでは「src」ディレクトリ)のディレクトリ構造も作成されます。何故ですか?必須ですか?それとも、それは単なる慣習ですか?

ありがとう。

4

3 に答える 3

6

主にコンベンション。ソースがバイナリ構造をミラーリングすることは理にかなっています。

また、同じ名前の2つのクラスがある場合(ただし、パッケージが異なる場合)、異なるディレクトリにない場合、ソースをどのように保存しますか?

小さなプロジェクトではソースを1つのフォルダーに保持するだけで問題ありませんが、大きなプロジェクト(数百のクラス)がある場合は、ソースをパッケージにグループ化すると、管理がはるかに容易になります。

于 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 に答える