ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
WAR ファイルとは
WAR (Web Application Archive) は Java Web アプリケーションを 1 ファイルにまとめた配信形式。実体は ZIP 形式なので、ZIP 操作と同じ方法で中身を確認できます。
標準的な構造:
myapp.war
├── META-INF/
│ └── MANIFEST.MF
├── WEB-INF/
│ ├── web.xml ← デプロイメント記述子
│ ├── classes/ ← コンパイル済み .class
│ │ └── com/example/...
│ └── lib/ ← 依存 jar
│ ├── spring-core-x.x.x.jar
│ └── ...
├── index.html
├── css/
├── js/
└── images/
方法 1: unzip コマンド
# 一覧表示(展開せず)
$ unzip -l app.war
Archive: app.war
Length Date Time Name
--------- ---------- ----- ----
0 2026-05-15 12:00 META-INF/
70 2026-05-15 12:00 META-INF/MANIFEST.MF
0 2026-05-15 12:00 WEB-INF/
2048 2026-05-15 12:00 WEB-INF/web.xml
0 2026-05-15 12:00 WEB-INF/classes/
215040 2026-05-15 12:00 WEB-INF/lib/spring-core-5.3.20.jar
...
# 詳細情報付き
$ unzip -v app.war
# 特定ファイルだけ確認(標準出力)
$ unzip -p app.war WEB-INF/web.xml
# 全展開
$ unzip app.war -d extracted/
$ ls extracted/
# 特定ファイルのみ展開
$ unzip app.war WEB-INF/web.xml -d extracted/
方法 2: jar コマンド
# 一覧 (jar Table)
$ jar tf app.war
META-INF/
META-INF/MANIFEST.MF
WEB-INF/
WEB-INF/web.xml
WEB-INF/classes/
WEB-INF/lib/spring-core-5.3.20.jar
...
# 詳細表示
$ jar tvf app.war
# 全展開
$ mkdir extracted && cd extracted
$ jar xf ../app.war
# 特定ファイル展開
$ jar xf app.war WEB-INF/web.xml
# 内容確認 (一度展開する必要)
$ jar xf app.war WEB-INF/web.xml
$ cat WEB-INF/web.xml
方法 3: Windows コマンド
# PowerShell
PS> Expand-Archive app.war -DestinationPath extracted
# または GUI で右クリック → 「すべて展開」
# 拡張子を .zip にリネームすればエクスプローラから直接開ける
# 7-Zip CLI
> 7z l app.war # 一覧
> 7z x app.war # 展開
方法 4: GUI ツール
- 7-Zip: 無料、Win/Linux/Mac、WAR を ZIP として開ける
- WinRAR: Windows 定番
- The Unarchiver: Mac
- Eclipse / IntelliJ: WAR を直接プロジェクトとして開ける
中身の主要要素
web.xml(デプロイメント記述子)
MyApp
HelloServlet
com.example.HelloServlet
HelloServlet
/hello
...
404
/error/404.jsp
# 確認
$ unzip -p app.war WEB-INF/web.xml | head -30
MANIFEST.MF
# META-INF/MANIFEST.MF
Manifest-Version: 1.0
Build-Jdk: 17.0.8
Built-By: jenkins
Implementation-Title: myapp
Implementation-Version: 1.0.0
$ unzip -p app.war META-INF/MANIFEST.MF
含まれる jar 一覧
# 依存ライブラリ一覧
$ unzip -l app.war | grep ".jar"
215040 ... WEB-INF/lib/spring-core-5.3.20.jar
123456 ... WEB-INF/lib/spring-mvc-5.3.20.jar
...
# jar の中身も見る
$ unzip -p app.war WEB-INF/lib/spring-core-5.3.20.jar | jar tf -
クラス一覧
# .class ファイル一覧
$ unzip -l app.war | grep ".class"
2048 WEB-INF/classes/com/example/HelloServlet.class
1536 WEB-INF/classes/com/example/UserController.class
...
# クラスを展開して逆コンパイル
$ unzip app.war WEB-INF/classes/com/example/HelloServlet.class -d extracted/
$ javap -c extracted/WEB-INF/classes/com/example/HelloServlet.class
WAR と JAR / EAR の違い
| 形式 | 用途 | 主な内容 |
|---|---|---|
| WAR | Web アプリ (Tomcat 等) | WEB-INF/, JSP, HTML, 静的ファイル |
| JAR | Java ライブラリ / 実行可能 jar | .class, MANIFEST.MF |
| EAR | エンタープライズアプリ | WAR + EJB JAR の集合 (主に WildFly / WebLogic) |
すべてZIP 形式。unzip / jar でどれも開ける。
Spring Boot の場合(exec jar)
Spring Boot は WAR より jar 形式が一般的。実行可能 jar も ZIP 構造:
# Spring Boot jar の中身
$ jar tf myapp.jar
BOOT-INF/ ← Spring Boot 独自構造
BOOT-INF/classes/
BOOT-INF/classes/com/example/Application.class
BOOT-INF/lib/
BOOT-INF/lib/spring-boot-3.1.0.jar
META-INF/MANIFEST.MF
org/ ← Spring Boot Loader
org/springframework/boot/loader/launch/JarLauncher.class
...
# 設定ファイル確認
$ unzip -p myapp.jar BOOT-INF/classes/application.properties
展開せずファイル内容を grep
# 全 .class ファイルから特定文字列検索 (時間がかかる)
$ unzip -p app.war | grep -a "特定文字列"
# WEB-INF/classes 内の .properties から検索
$ for f in $(unzip -Z1 app.war | grep ".properties"); do
echo "--- $f ---"
unzip -p app.war "$f"
done
# unzip + grep + awk
$ unzip -p app.war WEB-INF/web.xml | grep "servlet-class"
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?