Java プロジェクトの構造を初心者向けに説明します。質問する

Java プロジェクトの構造を初心者向けに説明します。質問する

私は .NET のバックグラウンドを持っており、Java についてはまったくの初心者で、Java プロジェクト構造を理解しようとしています。

私の典型的な .NET ソリューション構造には、論理的に異なるコンポーネントを表すプロジェクトが含まれており、通常は次の形式で名前が付けられます。

MyCompany.SomeApplication.ProjectName

プロジェクト名は通常、プロジェクトのルート名前空間と同じです。大規模なプロジェクトの場合は名前空間をさらに細分化することもありますが、ほとんどの場合、名前空間をさらに細分化する必要はないと思います。

Java では、プロジェクトで構成されるアプリケーションがあり、新しい論理レベルであるパッケージがあります。パッケージとは何ですか? パッケージには何が含まれている必要がありますか? このApp.Project.Package構造内で名前空間をどのように設定しますか? JAR はこれらすべてのどこに当てはまるのでしょうか? 基本的に、Java アプリケーション構造の初心者向けの入門書を提供してもらえますか?

ありがとう!

編集:本当に素晴らしい回答をありがとう。それではいくつか質問します。

  • .JAR ファイルにはコンパイルされたコードが含まれていますか? それとも圧縮されたソース コード ファイルだけでしょうか?
  • パッケージ名がすべて小文字であるのには何か理由があるのでしょうか?
  • パッケージには「循環依存関係」がありますか? つまり、Package.A は Package.B を使用でき、その逆も可能ですか?
  • クラスをパッケージ内にあるものとして宣言し、クラス内の別のパッケージを参照することを宣言するための一般的な構文 (using ステートメントなど) を示していただける方はいらっしゃいますか?

ベストアンサー1

「シンプルな」J2SE プロジェクト

cletus が説明したように、ソース ディレクトリ構造はパッケージ構造とまったく同じであり、基本的に Java に組み込まれています。その他のすべては、それほど明確ではありません。

多くの単純なプロジェクトは手作業で編成されるため、人々は納得できる構造を選ぶことができます。よく行われるのは (これは非常に有力な Java ツールである Eclipse のプロジェクト構造にも反映されていますが)、ソース ツリーを というディレクトリから開始することですsrc。パッケージのないソース ファイルは src に直接配置され、通常はディレクトリで始まるパッケージ階層もcom同様に に含まれますsrc。コンパイラを起動する前に ディレクトリCDに移動すると、コンパイルされたファイルは同じディレクトリ構造になり、各 .class ファイルは同じディレクトリに、そのファイルの隣に配置されます。srcjavac.class.java

ソース ファイルとクラス ファイルが多数ある場合は、混乱を避けるためにそれらを互いに分離する必要があります。手動および Eclipse の編成では、binまたはclassesディレクトリを と並行して配置することが多くsrc、その結果、 .class ファイルは の階層を反映した階層になりますsrc

プロジェクトにサードパーティ ライブラリから機能を提供するための一連の.jarファイルがある場合、3 番目のディレクトリ (通常は) がおよびlibと並行して配置されます。 内のすべては、コンパイルおよび実行のためにクラスパスに配置する必要があります。srcbinlib

最後に、多かれ少なかれオプションとなる項目がいくつかあります。

  • ドキュメントdoc
  • リソースresources
  • データ入力data
  • conf...の構成

分かりましたね。コンパイラはこれらのディレクトリを気にしません。これらは単に、自分で整理する(または混乱させる)ための手段にすぎません。

J2EE プロジェクト

J2EE は ASP.NET とほぼ同等で、Web アプリケーションを編成するための大規模な (標準) フレームワークです。J2EE プロジェクトのコードは好きなように開発できますが、Web コンテナがアプリケーションを配信する際に想定する構造には厳格な標準があります。また、その構造はソース レイアウトにも多少反映される傾向があります。一般的な Java プロジェクト (上記の記述とはあまり一致しません) と特に J2EE プロジェクトのプロジェクト構造を詳しく説明したページを以下に示します。

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

Maven プロジェクト

Mavenは非常に多用途なプロジェクト ビルド ツールです。個人的には、ビルドのニーズは でうまく満たされておりant、これは とほぼ同等ですnmake。一方、Maven は、依存関係管理が追加された完全なライフサイクル ビルド管理です。Java の世界のほとんどのコードのライブラリとソースは、ネット上で無料で入手できます。また、Maven に丁寧に頼めば、代わりにクロールして、指示しなくてもプロジェクトに必要なものをすべて取得してくれます。小さなリポジトリも自動的に管理してくれます。

この非常に勤勉な生き物の欠点は、プロジェクト構造に関して非常に独裁的であるという事実です。Maven のやり方に従うか、まったく従わないかのどちらかです。Maven は、その標準を強制することで、世界中のプロジェクトの構造を少し似通わせ、管理しやすくし、最小限の入力で自動的に構築しやすくしています。

Maven を選択した場合、プロジェクト構造について心配する必要はありません。プロジェクト構造は 1 つしかないからです。プロジェクト構造は次のとおりです。http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

おすすめ記事