概要
このチュートリアルでは、Java における JAR および WAR パッケージングの違いに焦点を当てます。
JAR パッケージング
簡単に言うと、JAR (Java Archive) はパッケージ ファイル形式です。 JAR ファイルには .jar という拡張子があり、ライブラリ、リソース、およびメタデータ ファイルが含まれます。
基本的には、コンパイル済みの Java ライブラリおよびアプリケーションの .class ファイルとリソースの圧縮バージョンを含む圧縮ファイルです。MF ファイルには、アーカイブに格納されたファイルに関する追加のメタデータが含まれることがあります。
私たちは、jar コマンドまたは Maven などのツールを使用して、JAR ファイルを作成できます。 これらのアーカイブ ファイルには .war という拡張子があり、任意の Servlet/JSP コンテナー上に展開できる Web アプリケーションをパッケージ化するために使用されます。
WAR ファイルの典型的な構造のレイアウト例を次に示します。 META-INF ディレクトリはプライベートで、外部からはアクセスできません。
その一方で、HTML ページ、画像、JS ファイルなど、すべての静的 Web リソースを含む WEB-INF パブリック ディレクトリも含まれています。 さらに、web.xml ファイル、Servlet クラス、およびライブラリが含まれます。
JAR を構築するために使用したのと同じツールとコマンドを使用して、.war アーカイブを構築できます。
Key Differences
では、これら 2 つのアーカイブ タイプの主な違いは何ですか
一番の違いは、ファイル拡張子です。 JAR には .jar という拡張子がありますが、WAR ファイルには .war という拡張子があります。
2番目の主な違いは、その目的と機能方法です。 JARファイルでは、ライブラリ、プラグイン、またはあらゆる種類のアプリケーションとして使用するために、複数のファイルをパッケージ化することができます。 一方、WAR ファイルは Web アプリケーションにのみ使用されます。
アーカイブの構造も異なります。 JARは任意の構造で作成することができる。 これに対して、WARはWEB-INFおよびMETA-INFディレクトリを含むあらかじめ定義された構造を持っている。
最後に、追加のソフトウェアを使用せずに実行可能なJARとして構築した場合、コマンドラインからJARを実行できる。 または、ライブラリとして使用することもできます。
Conclusion
このクイック記事では、.jar と .war という Java パッケージング タイプを比較しました。
Learn Spring コースで Spring 5 と Spring Boot 2 を始める:
>> CHECK OUT THE COURSE