JAR ファイルの概要

JAR とは

JAR は Java ARchive の略です。これは普及している ZIP ファイル形式に基づくファイル形式で、多数のファイルを 1 つにまとめるために使用されます。JAR は、一般的なアーカイブツールとして使用できますが、これを開発した主な動機は、Java アプレットおよびその必須のコンポーネント (.class ファイル、イメージと音声) がそれぞれに対して新しい HTTP 接続を開くことなく単一の HTTP トランザクションで、ブラウザにダウンロードできるようにすることでした。これはアプレットを Web ページにロードし機能させる速度を大きく改善します。JAR 形式は圧縮もサポートしており、これによってファイルサイズが縮小し、ダウンロードの所要時間がさらに短縮します。さらに、アプレットの作成者が、JAR ファイルの個別のエントリにデジタル署名して、その出所を認証することができます。

JAR には、次の特性があります。

JAR は PKWARE で定義されている zip アーカイブからなり、マニフェストファイルを含み、「JAR ファイルの仕様」で定義されているような署名ファイルを含むこともあります。

APPLET タグ

JAR ファイルを用意するために HTML ページの APPLET タグを変更することは簡単です。サーバー上の JAR ファイルは ARCHIVE パラメータによって識別されます。このパラメータでは、jar ファイルのディレクトリ位置は次の html ページの位置に関連付けられている必要があります。
    <applet code=Animator.class 
      archive="jars/animator.jar"
      width=460 height=160>
      <param name=foo value="bar">
    </applet>
従来からある CODE=myApplet.class パラメータも、引き続き必要であることに注意してください。CODE パラメータは、従来と同じく、実行が開始されるアプレットの名前を識別します。ただし、アプレットのクラスファイルとそのすべてのヘルパークラスは、JAR ファイルからロードされます。

ARCHIVE 属性は、「プリロードされる」クラスとその他のリソースを含む 1 つ以上の JAR ファイルを表します。これらのクラスは、指定された CODEBASE で AppletClassLoader のインスタンスを使ってロードされます。これは archive = archiveList という形式を取ります。archiveList 内のアーカイブは「,」で区切られます。

アーカイブファイルは、いったん識別されると、ダウンロードされ、コンポーネントに分離されます。アプレットの実行中に、新しいクラス、イメージまたはオーディオクリップがアプレットによって要求されたとき、最初にアプレットに関連するアーカイブ内で検索されます。ダウンロードされたアーカイブの中でファイルが見つからない場合、アプレットサーバー上で CODEBASE からの相対位置を検索します。つまり、JDK1.0.2 での検索方法と同様です。

archive タグは、複数の JAR ファイルを指定することがあります。各 JAR ファイルは「,」(コンマ) で区切る必要があります。順番に各ファイルがダウンロードされます。

    <applet code=Animator.class 
      archive="classes.jar ,  images.jar ,  sounds.jar"
      width=460 height=160>
      <param name=foo value="bar">
    </applet>
アーカイブパラメータのエントリの間には、いくつでも空白を入れることができます。さらに、archive タグ自体は、大文字と小文字を区別しません。このため、小文字だけ、大文字だけ、または「ArCHiVe」のように大文字と小文字を組み合わせて指定することができます。

実行可能 JAR ファイル

Microsoft Windows システムでは、Java 2 Runtime Environment のインストールプログラムが JAR ファイルのデフォルトの対応付けを登録します。その結果、デスクトップ上で JAR ファイルをダブルクリックすれば javaw -jar により JAR ファイルが自動的に実行されます。アプリケーションにバンドルされた、アプリケーションが依存している拡張機能も自動的にロードされます。この機能により、Microsoft Windows システム上でのエンドユーザーの実行環境がより使いやすくなります。

Solaris 2.6 のカーネルは、JAR ファイルを表す特別な「マジック」ナンバーを認識するようにすでに拡張が施されており、java -jar で JAR ファイルを Solaris のネイティブ実行可能ファイルであるかのように起動できるようになっています。そのため、JAR ファイルにまとめられたアプリケーションは、コマンド行から直接実行することも、CDE デスクトップ上でアイコンをクリックして実行することもできます。


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.