JAR (ファイルフォーマット)

JAR（ジャー）またはJava Archive（ジャバ アーカイブ）とは、コンパイルされた複数のJavaバイトコード及びそれが使用する画像などのリソースを一つにまとめZIP形式で圧縮されたファイル、及びそれを出力するツールのこと。圧縮されたファイルの拡張子には、「.jar」が使われる。
これによりJavaアプリケーション、Javaアプレット、ライブラリの配布が容易になる。アプレットにおいては、複数のJavaクラスファイルを一つにまとめ圧縮することで、全体のファイルの大きさを小さくするだけでなくHTTPコネクションの数を減らせるので、ウェブサーバの負荷が減り、アプレットの起動速度が向上する。
Javaで書かれていないネイティブなプログラムやライブラリもアーカイブにまとめられて配布されることが多いが、それらは展開してインストールする必要がある。これに対して、実行時環境などのJavaのツールはJARを直接扱えるため、ユーザが明示的にJARを解凍する必要はない。
類似するアーカイバとしてJSP/Servletなどのウェブアプリケーションを一つのアーカイブにまとめるWAR (Web Application Archive)、EJB (Enterprise JavaBeans) アプリケーションを一つのアーカイブにまとめるEAR (Enterprise Archive) などがある。
JARを含むこれらのアーカイブの実態はZIPそのものであり、ZIPを扱えるツールで同じように扱うことができる。ただし、JAR, WAR, EAR にはMETA-INF/ディレクトリ内にマニフェストと呼ばれるメタ情報が格納されている。このメタ情報はJARを扱うJavaのツールが解釈する。
また、このJARには電子署名をすることも可能である。これにより、JavaアプレットなどのJavaアプリケーションを実行するとき、ユーザがその署名を信用した場合に限り、サンドボックスモデルではできなかったユーザのローカル環境にあるターゲット資源にアクセスすることが可能になる。