Payload Logo

JarとWarの違い

Date Published


JarとWarの違い


  • JAR:Javaアプリケーションを単体で動かすための形式。自身にWebサーバーを内包できます。
  • WAR:Webブラウザで動くWebアプリ専用の形式。外部のWebサーバー(Tomcatなど)に配備して動作します。



項目

JAR(Java ARchive)

WAR(Web ARchive)

主な用途

一般的なJavaアプリ、ライブラリ、ツール

Webブラウザ経由で利用するWebアプリケーション

動かし方

アプリ自体にWebサーバー(Tomcat等)を内包可能。単体で実行できる。

外部のWebサーバー(TomcatやJettyなど)にデプロイして動かす。

内容物

コンパイルされたクラスファイル、設定ファイル、依存ライブラリなど

上記に加えて、HTML、JSP、CSS、JavaScriptなどのWebコンテンツ


それぞれの特徴


  • JAR(ジャール)
    • mainメソッドを持ち、コマンドラインから直接起動できます。
    • 最近のフレームワーク(Spring Bootなど)は、この形式で動かすのが標準的です。
  • ウォー(ワー)
    • mainメソッドを持たず、サーバーに組み込むための部品です。
    • Webアプリ専用のディレクトリ構造(WEB-INFフォルダなど)が決まっています。



システムのタイプ

採用される形式

理由・特徴

モダンな開発・クラウド刷新
(マイクロサービス、AWSなど)

JAR
(Spring Bootなど)

サーバー機能を内包しているため、Dockerなどのコンテナ環境と非常に相性が良く、スケール(拡張)しやすいためです。

レガシー・伝統的な企業システム
(オンプレミス、巨大な基幹系)

WAR

1台の高性能なアプリケーションサーバー(Apache TomcatWebSphereなど)に、複数のWebアプリを集約して管理・運用する標準的な構成だからです。