Javaプロジェクトの作成

Javaアプリケーション、Webアプリケーションを作成するときには、必ずプロジェクトディレクトリを作成します。

ディレクトリ管理のポリシーは、ディレクトリの管理で説明しています。

ディレクトリ管理で説明させて頂いた「projects」ディレクトリがこの節の話になります。

「c:¥projects」ディレクトリには、開発者が仕事で任されたプロジェクトや、Java勉強中の方々が色々なサンプルを格納する際に利用します。

仕事の場合には、「プロジェクトコード」を設定します。Javaプログラム講座におけるプロジェクトコードは「education」にしました。

管理するプロジェクトが増えるたびに「projects」配下にプロジェクトコードが付与されたディレクトリが増えていきます。

 [課題3]一流のJavaソースのspring-context-excerpt_201702.zipを
展開して頂けたらご理解いただけると思います。SpringFrameworkには24個のトッププロジェクト(ライブラリ)が存在し、その1つがプロジェクトコード「spring-context」です。

前頁の「Javaの基本1頁最後のダウンロード」のディレクトリ階層にある、
「Download」リンクにあるjava_sample1.zipを「c:¥projects」に展開すると「education」プロジェクトのディレクトリ階層ができるようにしてあります。

ディレクトリ階層を0から作るのは最初苦労しますが、ダウンロードしたサンプルを展開して終わらずに、実際「projects」ディレクトリにディレクトリ階層を作って下さい。
意外と大変なのと誤字によるコンパイルエラーが起きやすいです。慣れるためにも前頁のサンプルの階層を是非ご自身で0から作ってみて下さい。

プロジェクトディレクトリ階層

プロジェクト「education」のディレクトリ階層に役割と管理方法について説明します。

ディレクトリ名 説明
deploy deployとは、日本語で配備を意味します。配下の「classes」ディレクトリに「src¥main¥java」
配下に作成したJavaソースファイル(*.java)をjavacコマンドでコンパイルし,
作成されたクラスファイル(*.class)を保存します。
作成されたクラスファイルは、次にjarコマンドでjarファイル(*.jar)ライブラリとして圧縮します。
educationのmainのソース群なので、「eduacation-main.jar」などを作ります。
data ファイルの入出力などの試験データを格納します。
inputは入力データを格納します。
ouputはアプリケーションから出力したデータを格納します。
lib libはlibraryの略称でプロジェクトで利用する外部ライブラリ(*.jar)ファイルを管理します。
lib配下に利用するライブラリの名称を付与したディレクトリを作成します。
上記例では、spring-contextパッケージやspring-mvcパッケージを利用した例です。
例えば利用するライブラリが1つの場合でも出元を明確にするためパッケージ名のディレクトリを必ず1つ作ります。
このように、外部ライブラリを1階層挟む理由は、
複数の外部ライブラリを利用すると、同じパッケージのjarファイルを
それぞれ保持しているケースが良く起こります。
環境に配備する際には、libの同じパッケージのjarファイルの1つだけを利用します。
logs logsディレクトリは、ログの実装(JavaAPI)
のようにアプリケーションのログファイルの出力先です。
src

「src」はsourceの略称でソースファイルを格納します。
mainと1階層下げているは、educationプロジェクトの機能が多く、
batchシステムやwebシステムなどを製造する場合には、
mainの横並びにweb、batchなど
後でパッケージ化(jarファイルの作成)をしやすいようにするためです。

またmain配下にjavaディレクトリが存在する理由は、
eucationプロジェクトが、javaプログラム言語以外の言語を利用する場合に
javaの横並びに言語名でディレクトリを作成します。

「src¥main¥java」ディレクトリがjavaソースファイルを格納するディレクトリなります。
そして、「src¥main¥java」配下からパッケージ階層と一致したディレクトリを作成します。

先の頁で基本スタイルとして提示したHowToWriteJava.javaソースのパッケージは、
「jp.co.yourcompany.edcation.samples」です。
そのため「src¥main¥java」配下に「jp¥co¥yourcompany¥edcation¥samples」
ディレクトリを作成します。パッケージ階層の話は、別章で説明します。

batch 又は bin 上記例では示していませんが、バッチシステムを作成する際には「batch」または「bin」ディレクトリを作成します。
バッチファイル(*.bat)やシェルファイルを格納します。(*.sh,*.bash等)
web 上記例では示していませんが、プロジェクトがWebアプリケーションを製造する場合には、「web」ディレクトリを作成します。
「web」ディレクトリは、webサーバに配備する「css」「images」「html」などを管理します。

このようにキチンと、開発現場で必要最低限利用されるディレクトリ階層には、慣れて下さい。

大規模システムでは、これの10~100倍の資産を多くのプロジェクトディレクトリで管理します。

次頁以降にJavaソースファイルの作り方を説明します。