【初心者向け】JARとWARの違いとは?Javaのアーカイブファイルを徹底解説!
こんにちは。ゆうせいです。
Javaで開発していると、JAR(ジャー) や WAR(ワー) というファイル形式に出会うことがあります。
「JARとWARって何が違うの?」と疑問に思う新人エンジニアの方も多いでしょう。
この記事では、JARとWARの違い、用途、作成方法 をわかりやすく解説します!
JARとWARとは?
JAR(Java Archive)とWAR(Web Application Archive)は、どちらもJavaアプリケーションの実行に必要なファイルをまとめたアーカイブ形式です。
JARはJavaの一般的な実行ファイルで、WARはWebアプリ専用のパッケージという違いがあります。
📌 ざっくり説明すると…
- JAR → Javaのプログラムをまとめたもの(主にデスクトップアプリやライブラリ向け)
- WAR → Webアプリケーションをまとめたもの(Servlet, JSPを含むWeb向け)
では、それぞれ詳しく見ていきましょう。
JAR(Java Archive)とは?
✅ JARの特徴
- Javaのプログラム(クラスファイルやライブラリ)をまとめたファイル
- 主にスタンドアロン(単独で動作する)アプリケーションやライブラリで使用
- 拡張子は
.jar
- 通常は
java -jar
コマンドで実行可能
JARファイルは、Javaアプリケーションを配布するための標準的な形式です。
Javaのプログラム(.class
ファイル)や設定ファイル(META-INF
ディレクトリなど)をZIP圧縮したファイルになっています。
🎯 JARファイルの用途
- スタンドアロンのJavaアプリ
- 例:GUIアプリ(Swing、JavaFX)
- ライブラリとして使用
- 例:Apache Commons、Spring FrameworkのJARファイル
- Androidアプリ開発
- 一部のライブラリはJAR形式で提供
📌 JARの作成方法(例)
JavaのプログラムをJARにするには、以下のコマンドを使います。
jar cf myapp.jar MyClass.class
もし、JARファイルを実行可能(Runnable JAR)にしたい場合は、MANIFEST.MF
にエントリポイントを指定します。
echo "Main-Class: MyMainClass" > MANIFEST.MF
jar cmf MANIFEST.MF myapp.jar MyClass.class
実行は以下のコマンドで行えます。
java -jar myapp.jar
WAR(Web Application Archive)とは?
✅ WARの特徴
- JavaのWebアプリケーションをまとめたファイル
- 主にサーバー(Tomcat, JBoss, GlassFish)で実行される
- 拡張子は
.war
- Servlet、JSP、HTML、CSS、JavaScript などのWeb関連ファイルを含む
WARファイルは、JavaのWebアプリケーションをサーバーにデプロイ(配置)するためのパッケージです。
WARの構成はJARと似ていますが、特にWebアプリ向けのディレクトリ構成になっています。
🎯 WARファイルの用途
- Webアプリケーションのデプロイ
- 例:ECサイト、管理システム、Webサービス
- ServletやJSPを含むアプリ
- 例:Spring Bootを使ったWebアプリ
- 企業向けの業務システム
- 例:社内用ポータルサイト
📌 WARのディレクトリ構成
WARファイルの中身は、以下のような構成になっています。
myapp.war
│── WEB-INF/ ← Webアプリの内部ファイル
│ ├── web.xml ← 設定ファイル(Servletのマッピングなど)
│ ├── classes/ ← コンパイル済みのJavaクラス
│ ├── lib/ ← 依存するライブラリ(JARファイル)
│── index.jsp ← JSPファイル
│── static/ ← 静的ファイル(CSS, JS, 画像など)
特に重要なのは WEB-INF
ディレクトリ です。
この中には、アプリの設定ファイルや、Servletのクラスファイルが含まれます。
📌 WARの作成方法(例)
MavenやGradleを使うと、簡単にWARファイルを作成できます。
例えば、Mavenを使う場合は、pom.xml
に以下の設定を追加します。
<packaging>war</packaging>
その後、以下のコマンドでWARファイルを作成できます。
mvn clean package
生成された .war
ファイルをTomcatの webapps/
ディレクトリに配置すれば、自動的にデプロイされます。
JARとWARの違いを比較!
項目 | JAR(Java Archive) | WAR(Web Application Archive) |
---|---|---|
役割 | Javaのプログラムをまとめる | JavaのWebアプリをまとめる |
拡張子 | .jar | .war |
実行環境 | Java仮想マシン(JVM)で実行 | Webアプリケーションサーバー(Tomcatなど)で実行 |
主な用途 | デスクトップアプリ、ライブラリ | Webアプリ、APIサーバー |
含まれるもの | .class ファイル、ライブラリ | .class ファイル、JSP、Servlet、HTML、CSS |
JARとWARの選び方
✅ JARを使うべき場合
- スタンドアロンのJavaアプリを作るとき
- ライブラリを作成するとき
- Spring Bootの単体アプリ(Spring Bootでは
jar
でWebアプリも作成可能)
✅ WARを使うべき場合
- Webアプリケーションをデプロイするとき
- Tomcatなどのサーバーで動かすとき
- JSPやServletを使うとき
最近のWeb開発では Spring Boot などを使って「JAR形式でWebアプリを作る」ことも増えています。
そのため、「JARでもWebアプリを動かせる」という点は覚えておくといいですね。
まとめ
- JARはJavaプログラム全般に使われるアーカイブ形式
- WARはWebアプリ専用のアーカイブ形式
- JARはスタンドアロンのアプリやライブラリ向け
- WARはTomcatなどのWebサーバーで実行するために使う
JARとWARの違いを理解すれば、Javaのアプリ開発で「どの形式を使うべきか?」が分かるようになります!
ぜひ、自分でJARやWARを作成して、実際に動かしてみてくださいね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
新入社員2025年2月21日【新人エンジニア必見】よくあるGitエラーメッセージと対策方法10選
新入社員2025年2月21日Spring BootのThymeleaf(タイムリーフ)入門 – テンプレートエンジンの基礎を学ぼう!
新入社員2025年2月21日【完全ガイド】良いJavaDocの書き方とベストプラクティス
新入社員2025年2月21日Spring Bootのアノテーションはなぜインタフェースなのか?