NetBeansのJavaプロジェクトの構成を説明してみる。
まずプロジェクトを作成し、ライブラリを登録(使わないので適当なのを追加)、ソースコードを1つ、リソースとしてプロパティファイルを1つ、ユニットテスト用コードを1つ作成した。プロジェクトウィンドウは以下のようになる。
これをファイルウィンドウで見ると以下のようになる。生成ファイルを完全に作るために「生成物を削除して構築(保存時に自動で構築設定にしていなければただの構築でOK)」を実行しておくこと。さらにテストケースもコンパイルしておいた。
ここからわかることは
- ソースパッケージにあるソースファイルがコンパイルされbuild/classesに格納される。
- ソースファイル以外はそのままbuild/classesにコピーされる
- テストパッケージはbuild/test/classesに格納される
- 実行形式であるjarはdistフォルダに生成される。テストパッケージの内容は入らない
- jarが必要なライブラリはdist/libにコピーされる
ソースパッケージやテストパッケージのパスはsrcやtest固定?いや、そんなことはない。
プロジェクトを右クリックメニューからプロパティを選択。ソースを選択するとここで設定が可能だ。ここでは「src2」というフォルダを作成し追加してみた。そしてそこにリソースファイル、つまりプロパティファイルを移動させてみる。
そうするとプロジェクトウィンドウはこんな表示になる。
ラベルに入力した文字が表示される。わかりやすい。ちなみに、この状態でコンパイルしても生成物は変わらない。srcとsrc2のものが同じパッケージに格納されるからだ。
最後に生成されるjarアーカイブの中身を見てみよう。
マニフェストファイルを見るとクラスパスが通っていて、メインクラスが指定されている。
このおかげでこのdistフォルダ構成のままもってあるく限りjarファイルだけを実行すればよい。jarアーカイブのマニフェストファイルにはクラスパスの設定機能があるので、依存するライブラリ等をユーザーは意識する必要がないのだ。このおかげでNetBeansで生成したJavaのファイルはダブルクリックするだけと非常に扱いやすいというわけ。
手動でjarファイルを作った場合も依存ライブラリがある場合は必ず設定しておこう。