Javaで作ったプログラムを配付する際、どういう形にするのがいいか、悩んでいる人は多いと思います。特に、アプリケーションが問題です。アプレットならばブラウザで見てもらえばいいですが、アプリケーションはそうはいきません。また、Java2からSwingが使えるようになりましたが、これは現時点では標準でサポートしているWebブラウザはなく、java
Plug-inなどを別途インストールしてもらわないといけません。そうすると、いろいろ面倒があるアプレットよりアプリケーションで配付できればそのほうが便利に思えます。
WindowsでJava2以降を使う場合、実は大変便利な機能が用意されています。それは「Excutable Java Archive File」というものです。「Excutable File」というのは何のことかわかりますね? 皆さんお馴染みの「EXEファイル」のことです。ということは、これは「EXEのように、ダブルクリックで起動できるJavaのアーカイブファイル」ということなのですね。
Javaでは「JAR」というアーカイブファイルがサポートされています。これはJavaBeansのところで登場しましたが、ここで改めて触れておくと、Javaの標準アーカイブ(Java Archive)のことです。拡張子が「jar」なので、一般に「JARファイル」などと呼ばれたりします。
Excutable Java Archive Fileは、このJARで単一アーカイブファイルにまとめたものです。が! ただ単にJARにしただけでは、ダブルクリックで起動できるようにはなりません。ちょっとした仕掛けが必要となります。それには、「マニフェストファイル」を使います。
では、Excutable Java Archive Fileの作り方を説明しましょう。
1.マニフェストファイルを作ります。エディタを起動して、以下のような1行のテキストを記述します。
Main-Class: ○○
○○にはアプリケーションクラス(Mainメソッドを持ったもの)の名前が入ります。例えば「TestApp.class」ならば「Main-Class: TestApp」となります。拡張子のclassはつけません。また、最後に必ず改行をしておいてください。
2.マニフェストファイルを保存します。記述したら、アプリケーションクラスと同じ場所に「Manifest.mf」というファイル名で保存して下さい。実は、ファイル名は別に他のものでもかまわないのですが、一般にManifest.mfという名前にします。
3.JARファイルを作ります。JARはMS-DOSプロンプトから実行します。cdコマンドでクラスのある階層に移動し、JARを実行します。このコマンドはパラメータが非常に多いのですが、とりあえずExcutable Java Archive Fileを作るのに必要な書き方だけ覚えておいて下さい。
jar cvfm 《JARファイル名》 《マニフェストファイル名》 《組み込むファイル名》
《JARファイル名》:JARファイルの名前。「○○.jar」というようにjar拡張子を指定すること
《マニフェストファイル名》:先ほど作った「Manifest.mf」を指定
《組み込むファイル名》 :そこにある全てのクラスを組み込むなら「*.class」、全てのファイルなら「*.*」とする
例えば、そこにある全クラスファイルをまとめて「TestApp.jar」というJARファイルを作るならば、「jar cvfm TestApp.jar Manifest.mf *.class」と実行します。こうすると、作業とファイルの圧縮組み込み過程がMS-DOSプロンプト上に出力され、JARファイルが作成されます。
これで作業は終わりです。できあがったJARファイルをダブルクリックしてみて下さい。そのまましばらく待っていると、Javaのアプリケーションが起動します。MS-DOSプロンプトを開いてわざわざ「java ○○」なんて打ち込む必要もなし。まあ、ちょっと起動に時間がかかりますが、それ以外はほとんど普通のWindowsのアプリケーションと同じ感覚で使えることがわかるでしょう。
Java2で、一度このExcutable Java Archive Fileを使うと、Javaに対する認識が変わります。Java2は、Visual BasicやDelphiなどと同様、Windowsの一般的なプログラム作成に十分使えることがわかります。もちろん、速度がちょっと遅いとか、Javaがインストールしてないと動かないなどの問題はありますが、自分で作ったJavaアプリケーションがダブルクリックで動くのはとても感動しますよ! 是非、一度挑戦してみましょう!