設定や画像、META-INFを見たいなら「一覧・解凍」です。 JARをアプリとして起動したい場合はJava環境、Main-Class、依存関係を確認します。KaruzipはJava仮想マシンではありません。
JARの「実行」と「解凍」は別の操作
JARには、Javaアプリとして実行するもの、別のアプリから読み込むライブラリー、画像や設定をまとめたリソース書庫があります。ダブルクリックや java -jar はプログラムを起動する操作、一覧・解凍は中のファイルを確認して別フォルダーへコピーする操作です。
| やりたいこと | 選ぶ操作 | 必要なもの |
|---|---|---|
| 中のファイル名と階層を見たい | 一覧表示 | JAR対応の書庫ツール |
| 画像、設定、MANIFEST.MFを取り出したい | 全体・選択解凍 | 空の保存先 |
| Javaアプリを起動したい | java -jar等で実行 | 対応Java、Main-Class、依存関係 |
| .classの処理内容を読みたい | 解析・逆コンパイル | 専用の解析環境。解凍だけではソースにならない |
JARはZIPを基礎に、META-INFの情報を加えた書庫
OracleはJARを標準ZIP形式に基づくファイル形式と説明しています。一般的なJARは、Javaのクラスファイル、設定、画像、音声などを一つへまとめ、必要に応じて META-INF/MANIFEST.MF に書庫全体の属性を記録します。
| 項目 | 役割 | 確認時の注意 |
|---|---|---|
| META-INF/MANIFEST.MF | 版、作成情報、Main-Class等の属性 | Main-Classがなければjava -jarで起動できない場合がある |
| *.class | コンパイル済みJavaバイトコード | 解凍しても元の.javaソースには戻らない |
| 画像、音声、テンプレート | アプリやライブラリーが使うリソース | 名前や配置を変えると元JARの動作へ影響する |
| *.properties、XML、JSON | 設定、文言、メタデータ | 文字コードと参照元を確認する |
| META-INF/*.SF、*.RSA等 | 署名関連ファイル | 取り出しただけでは署名検証にならない |
Karuzipの書庫情報で形式がzipと表示されるのは、JARがZIPコンテナーを基礎にしているためです。拡張子が.jarであることと、内部の圧縮方式がZIP系であることは矛盾しません。
JARを解凍する前に確認する5項目
- 目的がJavaアプリの実行か、中身の確認・抽出かを決める
- 元JARを上書きせず、検証が終わるまで残す
- 入手元が示すサイズ、SHA-256、署名情報があれば先に照合する
- 既存プロジェクトと混ざらない空の保存先を用意する
- .class、.dll、.exe、スクリプトを取り出しても、内容を確認せず実行しない
既存のJavaプロジェクトへ直接展開すると、同名クラスや設定を上書きするおそれがあります。OracleのJAR抽出手順も、同じパスの既存ファイルを上書きし得ると注意しています。最初は空の作業フォルダーへ取り出します。
KaruzipでJARを確認・解凍する4ステップ
-
1
JARをKaruzipで開く
.jarをKaruzipへドラッグするか、「中身を見る」から選びます。実行はせず、ZIPコンテナー内の項目を一覧します。
-
2
META-INFと目的の項目を確認する
フォルダー、ファイル名、サイズ、更新日時を見ます。実行条件を確認する場合はMETA-INF/MANIFEST.MF、リソース抽出ならassetsや設定フォルダーを探します。
-
3
全件か選択解凍かを決める
全部必要なら「すべて解凍」、一部だけなら対象行のチェックボックスを選び「選択した項目を解凍」を押します。
-
4
出力件数とハッシュを照合する
完了表示の保存先を開き、必要なファイルだけが出力されたかを確認します。重要なファイルは元項目または配布元のハッシュと照合します。
実測:1,963 bytesのJARを一覧・情報・書庫テストで確認
MANIFEST.MF、日本語プロパティ、設定、説明文を含むリソースJARを自作しました。Javaの実行可能クラスとMain-Classは入れず、「書庫として確認できること」と「アプリとして実行できること」を分離して検証しています。
| 確認 | 結果 | 読み方 |
|---|---|---|
| JARファイル | karuzip-jar-sample.jar・1,963 bytes | SHA-256を記録 |
| 一覧 | ファイル4・フォルダー4 | 合計8項目 |
| 展開後サイズ | 724 bytes | 4ファイルの本文合計 |
| 圧縮済みデータ合計 | 589 bytes | Store / Deflate |
| 書庫情報 | 形式zip・書庫1.9 KB・圧縮率81.4% | JARがZIP基盤であることを反映 |
| 書庫テスト | 問題は見つかりませんでした | 書庫構造を最後まで読み取り |
今回のJARのSHA-256は 1E357F431F213D7A79A9F9BA18CEF89F9DA341B2199DAA6D9D938B5A505C171F です。書庫テスト成功はZIP/JAR構造を読み取れたことを示しますが、Javaコードの安全性、Main-Classの正しさ、依存ライブラリーの有無までは確認しません。
MANIFEST.MFだけを選んで取り出す
一覧で META-INF¥MANIFEST.MF の一行だけを選び、「選択した項目を解凍」を実行しました。出力先にはMETA-INFフォルダーとMANIFEST.MFだけが作られ、assets、config、docsのファイルは出力されていません。
| 照合項目 | 結果 | 判定 |
|---|---|---|
| 出力ファイル数 | 1 | MANIFEST.MFだけ |
| 出力サイズ | 134 bytes | 元ファイルと一致 |
| 元ファイルSHA-256 | CF96DCBB…D487 | 比較元 |
| 出力SHA-256 | CF96DCBB…D487 | 完全一致 |
| Main-Class属性 | なし | 実行可能JARとは断定できない |
実測:先頭が「./」の不適切な項目は安全検査で拒否された
最初の試験では、汎用ZIP作成コマンドへカレントディレクトリ全体を渡したため、項目名の先頭に ./ が入りました。Karuzipは一覧と書庫テストまでは表示しましたが、選択解凍時に「書庫内に親フォルダへ移動するパスがあります」として出力を拒否しました。
| 標本 | 先頭項目 | 選択解凍 |
|---|---|---|
| 初回・2,131 bytes | ./、./META-INF/等 | 安全検査で拒否 |
| 修正後・1,963 bytes | META-INF/、docs/等 | MANIFEST.MF一件を正常出力 |
OracleのjarコマンドとKaruzipの使い分け
JDKが導入済みなら、Oracleのjarコマンドで jar --list --file app.jar とすると一覧を表示し、jar --extract --file app.jar --dir output で展開できます。特定項目だけを指定することもできます。WindowsでGUI確認したい場合やJDKを入れずに一覧したい場合はKaruzipを使えます。
| 方法 | 向く場面 | 注意点 |
|---|---|---|
| Oracle jarコマンド | 開発、スクリプト、公式JDK環境 | JDKの導入とコマンド入力が必要 |
| Karuzip | GUI一覧、検索、書庫情報、書庫テスト、選択解凍 | Javaアプリの実行、逆コンパイル、JAR再作成は行わない |
| 拡張子を.zipへ変更 | 原理確認のために紹介されることがある | 形式は変わらず、元の用途を分かりにくくするため非推奨 |
書庫テスト、JAR署名、コード安全性は別の確認
Karuzipの書庫テストはZIP/JARの項目と圧縮データを読み取ります。Oracleのjarコマンドには、重複項目や不正なパス等を確認する --validate もあります。JAR署名の検証、Javaコードの挙動、依存関係、脆弱性の有無は別の確認です。
| 確認 | 分かること | 分からないこと |
|---|---|---|
| 一覧表示 | 項目名、階層、サイズ、日時 | クラスの処理内容 |
| Karuzip書庫テスト | ZIP/JAR構造と圧縮データを読めるか | 署名者、Main-Class、依存関係 |
| jar --validate | 重複名、不正パス、マルチリリース整合性等 | マルウェアや用途 |
| JAR署名検証 | 署名された項目の改ざん有無と署名情報 | コードが安全・無欠陥であること |
| 逆コンパイル・コードレビュー | バイトコードから推定した処理 | 元ソースとの完全一致 |
JARを解凍できないときの確認順
| 症状 | よくある原因 | 次に確認すること |
|---|---|---|
| 一覧が表示されない | ダウンロード未完了、破損、JARではないファイル | 入手元のサイズ・SHA-256と照合して再取得 |
| 解凍時にパスが拒否される | ../、./、絶対パス、ドライブ文字等 | 安全検査を無効化せず、作成元から正常なJARを取得 |
| MANIFEST.MFが見つからない | META-INFを持たないZIP、特殊な配布物 | 拡張子と作成元の仕様を確認 |
| java -jarで起動しない | Main-Classなし、Java版違い、依存関係不足 | 解凍問題ではないため配布元の実行要件を確認 |
| .classが読めない | コンパイル済みバイトコード | テキストエディターではなく正規の解析環境を使う |
| 解凍先へ書き込めない | 権限、空き容量、同名ファイル | ユーザーフォルダー内の空の保存先を選ぶ |
| 日本語プロパティが読みにくい | 文字コード、Unicodeエスケープ、アプリ固有規則 | 元ファイルを残し、作成元の読込方法を確認 |
- JARを解凍できたことを、Javaアプリが実行可能な証明にしない
- .jarを.zipへ名前変更したまま配布しない
- 入手元不明の.class、.dll、.exe、スクリプトを実行しない
- 既存のJavaプロジェクトへ直接上書き展開しない
- 危険なパスの警告を無視して別ツールで強制展開しない
- 署名関連ファイルがあるだけで正規品と判断しない
JARの中身確認・解凍でよくある質問
JARファイルはWindowsで解凍できますか?
できます。JARはZIP形式を基礎にした書庫なので、Karuzipで項目を一覧し、全体または必要なファイルだけを解凍できます。Javaアプリとして起動する操作とは別です。
JARの中身を解凍せずに確認できますか?
できます。KaruzipでJARを開くと、META-INF、クラス、画像、設定等の名前、階層、サイズ、更新日時を一覧できます。元JARを書き換えずに確認できます。
JARとZIPの違いは何ですか?
JARはZIP形式を基礎に、Javaのクラスやリソースをまとめる用途とMETA-INFの規則を加えた形式です。Karuzipの書庫情報で形式zipと表示されても、JARの内部構造として不自然ではありません。
JARを解凍すればJavaアプリを実行できますか?
解凍は実行条件を整える操作ではありません。Javaアプリの起動には対応Java、Main-Class、依存関係等が必要です。配布元がjava -jar等を案内している場合は、その実行要件を確認してください。
META-INF/MANIFEST.MFには何が書かれていますか?
Manifest-Version、実装名、版、Main-Class、署名に関する属性などを記録できます。ただし、JARごとに項目は異なり、Main-ClassがないJARもあります。
JARからMANIFEST.MFや画像だけを取り出せますか?
取り出せます。対象行を選び「選択した項目を解凍」を押します。実測ではMANIFEST.MF一件だけを134 bytesで出力し、元ファイルとSHA-256が一致しました。
JAR内の.classを開けば元のJavaソースを読めますか?
そのままでは読めません。.classはコンパイル済みバイトコードです。解凍はファイルを取り出すだけで、元の.javaソースへ戻しません。解析や逆コンパイルは別の専用作業です。
JARの拡張子をZIPへ変える必要がありますか?
必要ありません。JAR対応ツールなら.jarのまま一覧・解凍できます。名前を.zipへ変えても内部形式は変わらず、元の用途が分かりにくくなるため、原本の拡張子を保ちます。
書庫内のパスが危険だというエラーは無視してよいですか?
無視しないでください。../、./、絶対パス、ドライブ文字等は意図しない場所への書き込みにつながる場合があります。自作JARなら正しい項目名で作り直し、第三者のJARなら配布元へ確認します。
書庫テストに成功したJARは安全ですか?
安全性までは分かりません。書庫テストはZIP/JAR構造を読み取れるかを確認しますが、Javaコードの挙動、署名者、依存関係、脆弱性は判定しません。入手元、ハッシュ、署名、実行要件を別に確認します。
Karuzipで確認した条件
- 確認日
- 2026-07-31
- 環境
- Windows 11(日本語)、Karuzip v1.3.0
- 標本
- MANIFEST.MF、日本語properties、設定、説明文を含む自作リソースJAR karuzip-jar-sample.jar。比較用に先頭が./の拒否標本も作成。
- 確認項目
- 1,963 bytesのJARを開き、ファイル4・フォルダー4、展開後724 bytes、圧縮済み589 bytes、形式zip、圧縮率81.4%、書庫テスト成功を確認。MANIFEST.MFだけを選択解凍し、出力1件、134 bytes、元ファイルとSHA-256一致。./を含む2,131 bytesの試験JARはパス安全検査で拒否。
正常JAR SHA-256 1E357F431F213D7A79A9F9BA18CEF89F9DA341B2199DAA6D9D938B5A505C171F。拒否標本 SHA-256 A827A3309FFD10209EF8F821EFE891B1E332A50CDFB5A8CF918673442B9491A5。選択解凍したMANIFEST.MFは元・出力ともCF96DCBB1F6747C8811F05DD2456863A5B22CAB1B9BFFB0F8543CDD3CA04D487。
根拠と更新方針
Windowsの操作、ZIP形式の仕様、Karuzipの機能を混同しないよう、判断ごとに根拠を分けています。
- The jar Command | Oracle docs.oracle.com jarがZIP・ZLIBを基礎とする書庫ツールであること、一覧、抽出、指定先、--validate、不正パスの検査。
- java.util.jar | Oracle Java SE 25 docs.oracle.com JARが標準ZIP形式を基礎とし、任意のマニフェストで内容のメタ情報や署名情報を扱うこと。
- The java Command | Oracle docs.oracle.com java -jarがMain-Class属性を持つJAR内のアプリを起動する操作で、書庫の一覧・抽出とは別であること。
- Extracting the Contents of a JAR File | Oracle docs.oracle.com jar xfで全体または指定項目を抽出でき、元JARを変更せず階層を再現すること、同名ファイルを上書きし得る注意。
- JARファイルとは | Karuzip karuzip.com Karuzip v1.3.0でのJAR一覧、書庫情報、書庫テスト、全体・選択解凍と、Java実行や逆コンパイルを行わない製品境界。
JARを実行せず、中身を見て必要な項目だけローカルへ。
KaruzipはJARの一覧、検索、書庫情報、書庫テスト、全体・選択解凍に対応します。広告やバンドルはなく、アプリがファイルを外部へ送信することもありません。
Karuzipを無料でダウンロード