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フォルダなど)が決まっています。
システムのタイプ | 採用される形式 | 理由・特徴 |
|---|---|---|
モダンな開発・クラウド刷新 | JAR | サーバー機能を内包しているため、Dockerなどのコンテナ環境と非常に相性が良く、スケール(拡張)しやすいためです。 |
レガシー・伝統的な企業システム | WAR | 1台の高性能なアプリケーションサーバー(Apache Tomcat、WebSphereなど)に、複数のWebアプリを集約して管理・運用する標準的な構成だからです。 |