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

JAR(Java Archive)は、複数のコンパイル済みJavaバイトコードや、画像などのリソースを一つにまとめたZIP形式のファイルであり、Javaアプリケーション、Javaアプレット、ライブラリの配布を容易にするツールとしても機能します。拡張子には「.jar」が用いられます。

JARの主な利点



配布の容易化: 複数のファイルを一つにまとめることで、Javaアプリケーションやライブラリの配布が簡素化されます。
アプレットの効率化: アプレットにおいては、複数のクラスファイルを圧縮することでファイルサイズを縮小し、HTTPコネクション数を削減することで、ウェブサーバーの負荷を軽減し、アプレットの起動速度を向上させます。

JARの仕組み



一般的なネイティブコード(CやC++で記述されたプログラム)は、展開とインストールが必要ですが、JARファイルはJava実行環境(JRE)に含まれるツールで直接扱えるため、ユーザーが明示的に展開する必要はありません。

Javaの標準的なソフトウェア開発キット(JDK)には、jarというコマンドラインツールが含まれており、Javaコンパイラ(javac)で生成されたクラスファイルからJARファイルを生成できます。また、Javaの標準ライブラリには、JARファイルの読み書きを行うためのAPI(java.util.jarパッケージ)も提供されています。

類似のアーカイブ形式



JARに類似するアーカイブ形式として、以下のものがあります。

WAR (Web Application Archive): JSP/ServletなどのWebアプリケーションをまとめる。
EAR (Enterprise Archive): EJB (Enterprise JavaBeans) アプリケーションをまとめる。

これらのアーカイブは、実質的にはZIPファイルであり、ZIPファイルを扱えるツールで同様に操作できます。ただし、JAR、WAR、EARには`META-INF/`ディレクトリ内にマニフェストと呼ばれるメタ情報が格納されており、Javaのツールがこの情報を解釈します。

電子署名



JARファイルには電子署名を付与することが可能です。これにより、Javaアプレットなどのアプリケーション実行時に、ユーザーが署名を信頼した場合に限り、サンドボックスモデルではアクセスできなかったローカル環境のターゲットリソースへのアクセスが可能になります。

互換性



JARファイルには後方互換性がありますが、前方互換性は保証されていません。古いバージョンのJDKで生成されたJARは、新しいJDKやJREで利用できますが、新しいJDKで生成したJARを古い環境で利用することは推奨されません。Java SE 20までは後方互換性に関する記述がありましたが、Java SE 21以降では特に言及されていません。

まとめ



JARファイルは、Javaの配布と実行を効率化するための重要な仕組みです。ZIP形式であるため、他のZIPツールで扱うこともできますが、マニフェストファイルなどのメタ情報により、Java環境に特化した機能を提供しています。

関連事項



Java Development Kit (JDK): Javaアプリケーションを開発するためのツールキット。
Java Runtime Environment (JRE): Javaアプリケーションを実行するための環境。
* APK (ファイル形式): Androidアプリケーションのパッケージ形式。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。