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 で AppletClassLoder のインスタンスを使ってロードされます。 これは、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 ファイル

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

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


Copyright © 1996-1999 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303-4900 USA. All rights reserved.