JAR は Java ARchive の略です。これは普及している ZIP ファイルフォーマットに基づくファイルフォーマットで、多くのファイルを 1 つに集めるために使用されます。JAR は一般的なアーカイブツールとして使用できますが、これを開発した主な動機は、Java アプレットおよびその必須のコンポーネント (.class ファイル、イメージと音声) が各々に対して新しい接続を開くより単一の HTTP トランザクションでブラウザにダウンロードできるようにすることでした。これはアプレットをウェッブページにロードし機能させる速度を大きく改善します。JAR フォーマットはまた、圧縮をサポートし、ファイルのサイズを縮小しダウンロードの時間をさらに改善します。 さらに、JAR ファイルの個別のエントリにアプレットの著者がデジタル的に署名しその起源を認証することができます。
JAR は次のようなものです:
JAR は PKWARE で定義されている zip アーカイブからなり、manifest ファイ ルおよび潜在的に Manifest および署名 仕様で定義されているようなシグネチャファイルを含みます。
<applet code=Animator.class
archive="jars/animator.jar"
width=460 height=160>
<param name=foo value="bar">
</applet>
慣れ親しんだ CODE=myApplet.class パラメータは依然存在する必要があることに注意してください。CODE パラメータはいつものように、実行が始まるアプレットの名前を識別します。しかし、アプレットのクラスファイルとそのヘルパークラスすべてが JAR ファイルからロードされます。
一度アーカイブファイルが識別されると、これはダウンロードされコンポーネントに分離されます。アプレット実行の間、新しいクラス、イメージまたはオーディオクリップがアプレットによって要求されたとき、最初にアプレットに関連するアーカイブ内で検索されます。ダウンロードされたアーカイブの中でファイルが見付からない場合、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 のように大文字小文字のすべての組み合わせが可能にできます。