ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- APIキー取得方法 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?