ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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(デプロイメント記述子)
<!-- WEB-INF/web.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
version="5.0">
<display-name>MyApp</display-name>
<!-- Servlet 定義 -->
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<!-- フィルタ -->
<filter>...</filter>
<!-- エラーページ -->
<error-page>
<error-code>404</error-code>
<location>/error/404.jsp</location>
</error-page>
</web-app>
# 確認
$ 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
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?