Java TIPS - ARGIUS.net

TOP PAGE INDEX

Javaアプリケーションの起動方法

はじめに

ここでは、Javaアプリケーションの起動方法について説明しています。ほとんどがWindowsについてのものです。

最初に、javawコマンドと-jarオプションについて説明しておきます。javawコマンドは、GUI環境でJavaを実行した時にコンソールウィンドウ(DOSプロンプトなど)を開かないようにします。-jarオプションは、指定したJARファイルのマニフェスト(MANIFEST.MF)に記述されているメインクラスを使って起動します。

マニフェストにメインクラスを記述

Manifest-Version: 1.0
Main-Class: net.argius.Sample

コマンドで実行

最も普通の方法ですが、バリエーションを広げるためにも、改めて説明します。

マニフェストにメインクラスを設定したJARファイルをコマンドラインから実行するには、次のように入力します。

> javaw -jar sample.jar

このコマンドは、他のところでも使うことができます。

関連付けをする

この説明は、JavaというよりWindowsの機能についてです。

拡張子.jarをJava実行ファイル(javaw.exe)に関連付けすると、JARファイルをダブルクリックしてアプリケーションを起動させることができます。拡張子.jarの設定に「実行」という名前(意味が分かれば何でも良い)の「アクション」を追加し、アプリケーションに次の書式を設定します。

JARファイルを関連付けする書式

javaw.exe -jar "%1"
  javaw.exe は、フルパスで指定しても良い

具体的な操作方法については、キーワード「ファイルタイプ 関連付け」でインターネット検索してみてください。

設定を変更しないで実行形式にするには

これまでの方法は、設定を変えなければならなかったり、ファイルが複数必要になったりと、いくつかの手順が必要です。この些細な手順でも実施できない場合もあります。例えば、エンドユーザのPCが10,000台あって、それ全部に設定する必要があったら、どうしたら良いでしょうか。もちろん、エンドユーザの大半は、自分で関連付けができないと想定して、です。

そこで、JARファイルをEXEファイルに変換する方法があります。当然ですが、EXEにしてしまうと、WORAでなくなります。

実行ファイルを作成する (1) ネイティブコンパイル

Javaで書かれたプログラムは、通常クラスファイルとして存在しますが、クラスファイルではなく、ネイティブコードに変換してしまいます。ネイティブコードにすることで、高速化が望めることもあります。さらに、JRE(Java実行環境)が無くても動かすことができます。

ネイティブコード変換ができるアプリケーションには、JET(有償)や、GCJ(フリー)などがあります。

ただし、すべてのコードを完全に変換できるわけではないこと、導入に(時間も含めて)コストがかかること、などの問題があります。もちろん、それに見合う効果が得られるのであれば、問題ありません。

実行ファイルを作成する (2) 起動専用の実行ファイル

ネイティブコードに変換しなくても、EXEファイルにする方法があります。その方法とは、JARファイルを内蔵するEXEファイルを作ることです。そして、それを肩代わりしてくれるツールがあります。これを使えば、配布されたEXEファイルをそのままJavaアプリケーションとして起動できるようになります。ただし、JARファイルを代わりに起動してくれるだけなので、JRE(Java実行環境)は必要です。

exewrap (リンク先を開く)

同様のツールに、JSmoothlaunch4jがありますが、ここで要求している機能としてはあまり違いはないので、このexewrapだけを紹介します。また、上記のサイト自体でそれぞれの違いを詳説していますので、比較はそちらに任せます。さらに、説明が日本語なので、英語の苦手な人には特に助かることでしょう。

いくつか特長をあげると、インストールや実行がとても簡単であること、作成したEXEファイルにはライセンス上の制限がないこと、などです。敢えて弱点を挙げるとすれば、新しすぎるところかもしれません(2005.05.29時点でまだ生後2ヶ月足らず)。

おわりに

Javaアプリケーションは、実行方法が明快でないせいか、あまり広まっていないように思います。これらの方法を使い分ければ、Javaアプリケーションがさらに身近なものになるのではないでしょうか。活用していただければ幸いです。

最終更新日 : 2005.05.29

TOP PAGE INDEX