Javaでのjarとwarの違い


462

違いは何である.jar.war、ファイルは?
それはファイル拡張子だけですか、それともそれ以上ですか?

回答:


387

Javaのヒントから:jarファイルとwarファイルの違い

これらのファイルは、java jarツールを使用して圧縮されたファイルです。これらのファイルは、さまざまな目的で作成されます。これらのファイルの説明は次のとおりです。

  • .jarファイル: .jarファイルには、ライブラリ、リソース、プロパティファイルなどのアクセサリファイルが含まれています。

  • .warファイル: warファイルには、任意のサーブレット/ jspコンテナにデプロイできるWebアプリケーション含まれています。.warファイルには、jsp、html、javascript、およびWebアプリケーションの開発に必要なその他のファイルが含まれています。


Sun / Oracleの公式説明:


ウィキペディアの記事:


10
jspおよび追加のWebアプリケーションファイルとして、jarファイルに入れられないのはなぜですか。
Emmanuel Angelo.R

@ EmmanuelAngelo.Rできます-jarファイルは単なるzipファイルです。それが有用なことを行うかどうかは別の問題であり、jarファイルを利用するコードによって異なります。興味深い例として、Jenkins Continuous Integrationサーバーは「java -jar」で実行できるWARファイルとして配布されています。詳細については、wiki.jenkins-ci.org / display / JENKINS /…を参照してください。
するThorbjörnRavnアンデルセン


40

Javaコンポーネントライブラリに使用されるパッケージと同様のJARであるWebアプリケーションアーカイブ(WAR)と呼ばれるパッケージで、J2EEアプリケーションにWebコンポーネントを追加します。WARには通常、次のようなWebコンポーネント以外のリソースが含まれています。

  • サーバー側ユーティリティクラス(データベースBean、ショッピングカートなど)。
  • 静的Webリソース(HTML、画像、音声ファイルなど)
  • クライアント側のクラス(アプレットとユーティリティクラス)

WARには特定の階層ディレクトリ構造があります。WARの最上位ディレクトリは、アプリケーションのドキュメントルートです。ドキュメントルートは、JSPページ、クライアント側のクラスとアーカイブ、および静的Webリソースが格納される場所です。

ソース

したがって、.warは.jarですが、これにはWebアプリケーションコンポーネントが含まれ、特定の構造に従ってレイアウトされます。.warは、TomcatやJettyなどのWebアプリケーションサーバー、またはJBossやGlassfishな​​どのJava EEサーバーにデプロイするように設計されています。


1
では、ソケットを使用するだけでUIがないサーバーアプリを構築している場合、WARファイルとしてパッケージ化する必要がないということでしょうか。
bot_bot 2015年

実際には、もう少し読んでいます。Tomcatは必要ありません。jarをサーバーにエクスポートして、そこから直接実行できます。
bot_bot 2015年


15

.warファイルには、一方で、アプリケーション・サーバー内で実行するWebアプリケーションアーカイブである.jarユーザーのマシン上のデスクトップアプリケーションを実行するJavaアプリケーションアーカイブです。


14
2番目のステートメントは必ずしも真ではありません。jarは、Spring Bootなどの組み込みWebサーバーを起動することもできます。
whirlwin

4
そのステートメントでさえ完全に真実ではありません。jarは、他のアプリケーションで使用されるコードのライブラリにすぎません。つまり、実行するためのメインクラスさえ含まれていない場合があります。
Kevin Welker

@KevinWelkerは同意した。2011年(この投稿が書かれたとき)でさえ、jarはライブラリを表すだけでした。しかし、春のブートはありませんでしたので、Webサーバーをwhirlwindのようなjarファイルに埋め込むことができるという事実を見過ごすことができます。
intrepistar_88

@Kevin Welker、「完全にではない」ではなく、「完全に真実ではない」と言うでしょう。
Alexei Martianov

12

warファイルは、Webアプリケーションをパッケージ化してアプリケーションサーバーに簡単にデプロイできるようにするために使用される特別なjarファイルです。warファイルの内容は、定義された構造に従う必要があります。


10

.jarと.warはどちらも圧縮されたアーカイブファイルです。どちらにも、バージョニングなどの有益な情報を保持するオプションのMETA-INF / MANIFEST.MFマニフェストファイルと、それを実行するJVMのクラスパスやメインクラスなどの指示属性を含めることができます。

.warファイル-「サーブレットコンテナー」内で実行することを目的としたWebアプリケーションアーカイブで、他のjarファイル(WEB-INF / libディレクトリに)コンパイル済みクラス(WEB-INF / classesにあります(サーブレットもそこに移動します)).jspファイルイメージ、ファイルなど自己完結型モジュールを作成するために存在するすべてのWARコンテンツ。


5

基本的に両方の圧縮アーカイブ。warは、特定のディレクトリ構造を持つWebアプリケーションに使用されます。


4

warとjarは、javaファイルのアーカイブです。warはWebアーカイブであり、Webサーバーで実行されています。jarはjavaアーカイブです。


1

戦争-

JavaベースのWebアプリケーションを配布します。WARはJARファイルと同じファイル構造を持っています。JARファイルは、内部にバンドルされた複数のファイルを含む単一の圧縮ファイルです。

瓶-

.jarファイルには、ライブラリ、リソース、プロパティファイルなどのアクセサリファイルが含まれています。

WARファイルは、JSP、サーブレット、Javaクラスファイル、XMLファイル、JavaScriptライブラリ、JARライブラリ、静的Webページ、およびアプリケーションの実行に必要なその他のリソースを組み合わせるために使用されます。


0

jar:-jarには.class warのみが含まれます:-warに はhtml、js、cssおよび.classが含まれ、jspおよびサーブレットページも含まれます


0

JARファイルを使用すると、ライブラリ、プラグイン、またはあらゆる種類のアプリケーションとして使用するために、複数のファイルをパッケージ化できます。一方、WARファイルはWebアプリケーションでのみ使用されます。

JARは任意の構造で作成できます。対照的に、WARには、WEB-INFおよびMETA-INFディレクトリを持つ事前定義された構造があります。

JARファイルを使用すると、Javaランタイム環境(JRE)は、クラスと関連リソースを含むアプリケーション全体を1つのリクエストでデプロイできます。一方、WARファイルを使用すると、Webアプリケーションを簡単にテストおよびデプロイできます。


0

JARファイル拡張子は.jarで、コマンドプロンプトからjarコマンドを使用して作成されます(javacコマンドが実行されるように)。一般に、JARファイルには、ライブラリ、クラスなどのJava関連リソースが含まれます。JARファイルは、プラットフォームに依存しないことを除いて、winzipファイルに似ています。

WARファイルは単なるJARファイルですが、サーブレット、JSP、HTMLなどのWeb関連のJavaファイルのみが含まれます。

WARファイルを実行するには、Tomcat、Weblogic、WebsphereなどのWebサーバーまたはWebコンテナが必要です。JARファイルを実行するには、単純なJDKで十分です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.