Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Java

EARファイル・WARファイル・JARファイルの違いや特徴について

投稿日:2021年8月27日 更新日:

 

<目次>

(1) EARファイル・WARファイル・JARファイルの違いや特徴について
 (1-1) JARファイルとは(.jar)
 (1-2) WARファイル(.war)
 (1-3) EARファイルとは(.ear)
 (1-4) まとめ(三者の違い)

(1) EARファイル・WARファイル・JARファイルの違いや特徴について

タイトルの通り、Javaのモジュールをパッケージした形式であるEAR・WAR・JARの違いについてご紹介します。

EAR・WAR・JARはいずれもJava関連のモジュールを「デプロイ可能な単位」に固めたもので、この形式でJBossやTomcatといったアプリケーションサーバに配備して稼働させる事が可能になります。しかし、それぞれデプロイ対象の資産の内容や、配備先のサーバ種類が異なったりしています。

違いを理解するために、最初にそれぞれの概要について簡単に見ていきます。また図を使って、EARやWARやJARが全体像のどこに関連する資源なのか?も図示していきます。

(図100)

(1-1) JARファイルとは(.jar)

JARファイルはJavaのクラスファイル等を纏めて固めた資源で「.jar」の拡張子を持ちます。
 
その中でも「EJB-JAR」は特殊なJARの形式で、EJB(Enterprise Java Beans)のモジュール(クラスファイル)とEJBデプロイメントディスクリプタ(xml形式の定義ファイル)とをセットで拡張子「.jar」で固めたものです。
 
(表)
  JAR
(EJB-JARの場合)
配備対象 ●配備対象
EJBを固めた特殊なJarファイル(※注1)の場合、「EJBコンテナ」にデプロイします。

●概要
EJBコンテナはJARファイルを通じてEJBに対するアクセスを提供します。またEJBを他の部品と分離する役目も果たします。

(※注1)
EJB-JARはJava EEの仕様で定義された特殊なJarファイルの一種で「.jar」型の拡張子を持ちます。

動作環境 ・JREが必要
資産 下記のような資産を集めて「.jar」形式に固める

(例)
・Javaクラスファイル
・その他データ
(処理に必要なメタデータ、テキスト、画像等)

デプロイメントディスクリプタの名前 ・「META-INF」配下に「ejb-jar.xml」を配備
 
表の通り、EJB-JARは「EJBコンテナ」上にデプロイされます。
(図111)

 

目次にもどる

(1-2) WARファイル(.war)

WARは「Web application ARchive」または「Web Application Resource」の略でWebアプリを構成するモジュールを固めたファイルになります。具体的にはサーブレットのクラスファイル(.class)やJSPファイル、HTMLといったWebアプリの資産がJARファイルとして「.war」の拡張子で固められます。
 
(表)
  WAR
配備対象 ●配備対象
「Webコンテナ」(≒Servletコンテナ)にデプロイします。

●概要
WebコンテナはJavaの「JSP」や「Servlet」を固めたWARファイルでデプロイして、WebアプリのHTTPリクエスト/レスポンスの制御を提供します。

●(例)代表的なサーブレットコンテナ
・Tomcat
・Jetty

動作環境 ・Java EE(一部=Web Profile)が必要
⇒(例)Tomcat、Jettyなど
資産 下記のような資産を集めて「.war」形式に固める
(例)
・JARファイル
・JSP
・Servlet
・XML
・HTML
デプロイメントディスクリプタの名前 ・WEB-INF配下に「web.xml」を配備
表の通り、WARファイルは「サーブレットコンテナ」などにデプロイされます。
(図121)
 

目次にもどる

(1-3) EARファイルとは(.ear)

EARは「Enterprise Archive」の略で、1個~複数個の「.jar」や「.war」を集めて「.ear」の拡張子で固めたものになります。
 
(表)
  EAR
配備対象 ●配備対象
「アプリケーションサーバ」にデプロイします。

●概要
「アプリケーションサーバ」は1個~複数個のWARファイルやEJB-JARファイルを集めて1つに固めたものになります。

●(例)代表的なアプリケーションサーバ
・WebSphere(IBM)
・WebLogic(Oracle)
・JBoss
・GlassFish

動作環境 ・Java EE(全部)が必要
⇒(例)Jboss、WebSphere、WebLogic、GlassFishなど

(備考)
Java EE以外でも、Jakarta EE及びその互換製品でも実行可能

資産 EARファイルやJARファイルを1個~複数個集めて「.ear」で固めたもの

(例)
・EARファイル
・JARファイル

デプロイメントディスクリプタの名前 ・META-INF配下に「application.xml」を配備
表の通り、EARファイルは「アプリケーションサーバ」などにデプロイされます。
(図131)

目次にもどる

(1-4) まとめ(三者の違い)

●デプロイに必要な環境

一番大きな違いは「それぞれが異なる実行環境にデプロイされる」という点です。例えば、JARファイルはJREがある環境で動作するし、WARならJREに加えてTomcat等のサーブレットコンテナも必要ですし、EARなら更にEJBコンテナも含んだ「アプリケーションサーバ」(WebLogic等)が必要となります。

 

●機能的な違い

WARファイルはWebアプリに必要なJSPやサーブレットといった部品を固めたものである一方、JARは通常のクラスファイルやEJBを集めて固めたもの、EARはその両者をセットで固めたもの、といった役割が異なっています。
 

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Java

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

JavaのArrrayListとLinkedListの違いについて

<目次> (1) JavaのArrrayListとLinkedListの違いについて  (1-1) 比較表(ArrayList vs LinkedList)  (1-2) まとめ  (1-3) 参考 …

Javaでcsvファイルに書き込みを行う方法(サンプルプログラム付き)

<目次> (1) Javaでcsvファイルに書き込みを行う方法  (1-1) 構文  (1-2) サンプルプログラム (1) Javaでcsvファイルに書き込みを行う方法 Javaでcsvファイルを生 …

TwitterのAPIライブラリ(Twitter4j)で「いいね数」や「リツイート数」を取得する方法

<目次> (1) TwitterのAPIライブラリ(Twitter4j)で「いいね数」や「リツイート数」を取得する方法  (1-1) 構文  (1-2) サンプルプログラム (1) TwitterのA …

JFreeChartを使ってJavaで様々なグラフを簡単に描画する方法

(0)目次&概説 (1) 記事の目的  (1-1) 目的 (2) JFreeChartの概要  (2-1) JFreeChartとは?  (2-2) JFreeChartのアーキテクチャについて (3 …

サーブレットとは?その役割やHelloWorldサンプルコードのご紹介

(0)目次&概説 (1) サーブレットの基本  (1-1) サーブレットとは?  (1-2) サーブレットの前身技術との比較  (1-3) サーブレットとJSPの違い  (1-4) サーブレットのHe …

  • English (United States)
  • 日本語
Top