ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?