タイトルJava Watch on the X》4 - アプリケーションをパッケージとしてビルドする(2)Project BuilderでのJavaアプリケーション(1)カテゴリーProjectBuilder/Interface Builder, Java, Java Watch on the X
作成日2002/1/15 14:5:39作成者新居雅行
Mac OS Xのアプリケーションパッケージの概要に続いて、Project Builderでの設定を追って行くことにしよう。ここでは、December 2001版のDeveloper Toolsを使っている。プロジェクトのひな形として、Java(つまりPure Javaであるが)のカテゴリーには5つある。ただ、今時はもうAppletを作ることもほとんどないと思われるので、結果的にはAWTないしはSwingベースのアプリケーションとToolが選択できるということになる。

◇プロジェクトのテンプレートとして用意されたJavaのカテゴリ
 

Java AWT ApplicationとJava Swing Applicationは、いずれも、Mac OS Xのパッケージ形式のアプリケーションを構築する設定が最初から行われているプロジェクトが作成される。AWTとSwingの違いは、ひな形として作られているソースがどちらのGUIコンポーネントを使っているかということで、その他の違いはない。だから、AWTの方を選んで後からSwingに切り替えるというのは基本的にはソースプログラムの段階の作業だけとなる。Toolは、シングルバイナリとしてのjarファイルを生成すると考えればよい。つまり、javaコマンドで起動できるようなタイプのプログラムを作成するプロジェクトの設定となっている。

以下は、Java Swing Applicationを選択して作成されたプロジェクトの中身である。最初から用意されているファイルは3つだけだ。ここでは、プロジェクト名として「JavaSwingAppTest」という名前を付けている。

◇Java Swing Applicationによって作られるプロジェクト
 

プロジェクト名と同じ名前のソースJavaSwingAppTest.javaがこのアプリケーションのメインとなる。つまり、このクラスにmainメソッドが定義されているのが1つのポイントである。また、JavaSwingAppTestクラスは、JFrameを拡張したものでありつまりはSwingのウインドウである。また、OpenDocumentやQuitのAppleEventを受け付けるようにもなっている。いずれにしても、Swingのシングルウインドウアプリケーションなら、このソースを少し修正するだけで、使い物になるだろう。メニューの定義や、メニュー選択後に実行されるメソッドなども用意されているので、一度プログラムをじっくり検討するのもいいかもしれない。プログラムの作成にかかわることは別の回に改めて解説しよう。
AboutBox.javaは、文字とおり、○○について…のメニューを選択したときに表示されるウインドウを定義したものである。さらに、プロジェクトと同名のJavaSwingAppTest.icnsファイルは、アプリケーションのアイコンである。最初からアイコンが供給されていて、必要な設定が行われている。以前はコーヒーカップにアップルマークのそれなりにカッコいいアイコンだったが、どこかのバージョンから紙の上にコーヒーカップのアイコンに変わっている。いずれにしもてそのままでもかっこいいので、思わず使い続けたいとも思ってしまう。自分で作ったアイコンファイルの場合は、もちろん、プロジェクトに登録をして、「アプリケーション設定」にある「アイコンファイル」のファイル名を切り替えておく。

「プロジェクト」メニューから「アクティブターゲットの編集」(Command+option+E)を選択すると、プロジェクトの現在のターゲットについての設定が表示され、変更できる。プロジェクトには複数のターゲットが設定できるが、ターゲットにはコンパイルしてどのようにアプリケーションやあるいはファイルをビルドするのかと言った定義が記載できる。デフォルトでは1つのターゲットが作成されている。
「ファイルトビルドフェーズ」のタブでは、プロジェクトに登録したファイルをどんな処理にかけるのかということを設定するが、たとえば、あとから.javaファイルを登録すると自動的にコンパイル対象になるなど、ある程度は自動的にできる。ただ、プログラムファイル以外は登録後にここでの場所を確認する必要がある。異なる場所に設定したいのなら、ドラッグ&ドロップで移動したり、選択してdeleteで消したり、あるいは左側からファイルの項目をドラッグ&ドロップすることで編集作業ができる。

◇プロジェクトの設定の「ビルド設定」
 

Sourcesにあるファイルは、基本的には拡張子をもとにしてコンパイルがなされる。.javaだとjavacでコンパイルされるとう具合だ。
Bundle Resourcesに登録したファイルは、ビルドしたアプリケーションのパッケージの中のContents/Resourcesフォルダに、その内容が単にコピーされる。アイコンのファイル自体はここにファイルとして存在しないといけないわけだが、ビルド設定のここでの設定に従って、作成したアプリケーションにコピーされるという具合だ。
Java Archive FilesやFrameworks and Librariesについては、プロジェクト内のソース以外のライブラリを利用するという話のところで説明しよう。

「ビルド設定」のタブでは、コンパイルと、アプリケーションのパッケージ化についての設定を行う。ただ、基本的にはJavaの場合はチェックポイントは少ない。まず、「一般設定」でプロダクト名という項目があり、最初はプロジェクト名となっている。この名前は、まず、アプリケーションのファイル名になると同時に、内部では、Contents/MacOS内にある実行ファイル、Contents/Resources/Javaにあるコンパイル結果をまとめたjarファイルの名前にも使われる。もちろん、変更してもかまわないので、これは自由に設定すれば良い。ただ、日本語を含む名前にするとそのままでは実行できなくなる…というか、jarファイル名に日本語が入ってしまって問題になると思われるので、様々に変更をしなくてはいけなくなる。もし、日本語のアプリケーション名にしたい場合は、プロダクト名は1バイトコードで記述しておき、後からパッケージのフォルダ名を変更するのがいいだろう。実行時には、必ずしもアプリケーション名と、内部の実行ファイルの名前などが一致していなくてもいいようだ。

◇「ビルド設定」のプロダクト名
 

なお、「ビルド設定」のタブでの設定は、そこの一番最後にある「ビルド設定」にすべての設定が集約されていると考えれば良いだろう。それまでの部分でプロダクト名などは設定できるが、ぷダクト名は「PRODUCT_NAME」の設定として、ここでも変更はできるし参照もできる。

◇「ビルド設定」の一覧に設定結果は集約される
 

ビルド設定では、「JAVA_COMPILER_FLAG」として、javacに設定するフラグを記述することができる。=の右側をダブルクリックすると、キー入力が可能となるので、ここに設定を加えることもできる。Sept 2001版のDeveloper Toolsではここにエンコードの指定などを入れないとコンパイルエラーでフリーズするといった結果になっていたが、Dec 2001版はそうした配慮は必要ない。通常はコンパイラのフラグは何も指定しなくてもかまわない。「ビルド」設定を加えるときには、下側の(+)記号のボタンをクリックする。削除は(ー)記号のボタンだ。
「JAVA_COMPILER」には、コンパイラのプログラムへのパスが記載されているが、たとえば、コンパイラとしてjikesを使いたい場合には、jikesへのパスをここに記述すれば良い。

「ビルド設定」のタブでは、「コンパイラ設定」の「コード生成」で、コンパイラの最適化の設定が可能となっていうる。最初は「カスタム」となっているが、これは特に設定は行われていないようで、自分でフラグを設定するということのようだ。ここで、「レベル3」などを選ぶと、一番下の「ビルド設定」のところで「OPTIMIZATION_CFLAGS = -O3」といった設定が加わり、javacを起動するときに、オプションとして設定されるようだ。

◇コンパイラのオプティマイズの設定
 

(この項、続く)
関連リンク