タイトルJava Watch on the X》4 - アプリケーションをパッケージとしてビルドする(5)その他の実行時の情報カテゴリーProjectBuilder/Interface Builder, Java, Java Watch on the X
作成日2002/1/17 16:53:39作成者新居雅行
引き続いて、残りの実行に関するプロパティを紹介しよう。メインクラスとクラスパスは必須のプロパティであるが、ここで紹介するのはオプションのプロパティである。
まず、ワーキングディレクトリの指定をプロパティでできる。ワーキングディレクトリとは、アプリケーションにとっては、カレントディレクトリだと考えて良い。通常、ファイルを指定するのはパスが必要であるが、たとえば、ワーキングディレクトリにあるファイルやフォルダは、ファイル名だけで指定できる。Fileクラスを生成するときに「new File("test.txt")」とすれば、ワーキングディレクトリにあるtest.txtファイルに対する参照クラスが作成される。従って、ワーキングディレクトリからの相対パスでファイルを指定するということも可能である。
このワーキングディレクトリは、システムプロパティのuser.dirで確認できる。Mac OS Xのパッケージの場合、特に何も指定をしないと、ワーキングディレクトリは、パッケージのルートフォルダである。つまり、.appという拡張子のついたフォルダがワーキングディレクトリとなる。コンパイルして生成した.jarファイルのあるディレクトリではない。
ワーキングディレクトリを実行時に指定するには、MRJApp.propertiesファイルに指定する場合には、ファイルに、

com.apple.mrj.application.workingdirectory=パス

という記述を加える。イコールより後に、ワーキングディレクトリのパスを指定する。一方、ターゲットの設定の「アプリケーション設定」、すなわちInfo.plistファイルでの設定では、Javaのキーの下位にWorkingDirectoryという名前のキーを作り、その値として文字列でパスを指定する。

アプリケーションのmainメソッドに引数を渡すこともできる。メインメソッドは「public static void main(String args[])…」と定義されるが、ここでのargs引数に与える値を、Mac OS Xのアプリケーションパッケージでも与えることができる。UNIX/Windowsでコマンドライン形式で使われているJavaのアプリケーションだと、こうした指定が必要になるかもしれない。また、実行モードやテストデータを引き渡すなどのデバッグをしやすくするための工夫としても引数は利用できるだろう。次のような指定方法がある。

◇MRJApp.propertiesファイル
com.apple.mrj.application.parameters=パラメータ
◇アプリケーション設定(Info.plist)
キー:Java→Arguments/値:パラメータの文字列

パラメータは文字で指定するが、空白で区切って指定する。たとえば、「a b c」と指定をした場合には、mainメソッドではargs[0]は"a"、args[1]は"b"、args[2]は"c"となると言う具合だ。なお、パラメータ内の文字列はダブルクォーテーションで囲って1つの項目にするとか、あるいはエスケープなどの手段は利用できず、単にスペースを手がかりに区切るだけである。データとしてスペースを含む文字列をパラメータとして設定したい場合には%20などとURLエンコードして、受け取ったプログラムの側でデコードの処理を組み込むことになるだろう。

さらに、実行時のJava VMに引き渡すオプションの設定もできる。オプションの文字列はスペースで区切って複数を指定することもできりう。

◇MRJApp.propertiesファイル
com.apple.mrj.application.vm.options=オプション
◇アプリケーション設定(Info.plist)
キー:Java→VMOptions/値:オプションの文字列

たとえば、起動時に割り当てるヒープサイズは-Xms2mによってデフォルトの1MBから2MBに増加させることができます。さらに、ヒープの上限は-Xmx50mによって、デフォルトの16MBから、50MBに増加させることができます。javaコマンドの解説などで、オプションとして設定できるものを調べて利用すると良いでしょう。
(この項、続く)
関連リンク