なぜ JAR を CLASS に変換するのですか?
JAR (Java Archive) は、Java パッケージ名で整理されたコンパイル済みの .class ファイルを保持する ZIP コンテナです。開発者が個別のクラスを抽出するのは、バイトコードの検査、アーカイブ全体を再パッケージ化せずに単一ファイルを修正、クラスパスへの手動追加、または実際にどのバージョンのライブラリを持っているかを確認するためにデコンパイラにかけるといった目的があります。
JAR から CLASS への変換方法
7-Zip FREE
.jar を右クリックして «7-Zip > アーカイブを開く» を選択し、パッケージのサブディレクトリから必要な .class ファイルを抽出します。
jar (JDK) FREE
ターミナルで jar xf app.jar を実行してすべての内容を抽出します。.class ファイルはそれぞれの Java パッケージサブディレクトリに表示されます。
これらの形式について
JAR ファイルは Java Archive(Java アーカイブ)の略で、コンパイル済みの Java バイトコード(.class ファイル)、リソース、およびマニフェストをまとめた ZIP バンドルです。実行可能な JAR を実行するには Java のインストール(OpenJDK/Temurin は無料)が必要で、その後ダブルクリックするか、ターミナルで java -jar…
.JAR の詳細を開く →CLASS ファイルはコンパイルされた Java バイトコードであり、javac が .java ソースファイルから生成する出力です。実行するには Java (JDK) がインストールされている必要があり、«java MyClass» コマンドを使用します。コードの内容を確認するには、JD-GUI などのデコンパイラで開きます。CLASS…
.CLASS の詳細を開く →品質と注意点
.jarは標準的な ZIP アーカイブです。拡張子が唯一の違いであり、.zipにリネームすれば追加のソフトウェアなしで任意のアーカイブツールで開くことができます。.classファイルには人間が読めるソースではなく、コンパイルされた Java バイトコードが含まれています。ロジックを読むには、JD-GUI や CFR などのデコンパイラにファイルを通してください。デコンパイルされた出力は近似値です。- 内部のフォルダ構造は Java パッケージ名を反映しています(例:
com/example/App.class)。抽出されたファイルはそれぞれのパッケージサブディレクトリに配置されます。
よくある質問
JAR から .class ファイルを抽出するために何かインストールする必要がありますか?
.jar を .zip にリネームして Windows エクスプローラーや macOS Finder で開けば、中の .class ファイルを直接コピーできます。.class ファイル内のロジックを読むことはできますか?
.class ファイルはコンパイルされたバイトコードです。JD-GUI や CFR に通すことで、近似的な Java ソースコードを取得できます。.class ファイルの抽出はデコンパイルと同じですか?
.class バイトコードファイルを取り出すだけです。デコンパイルは、それらのファイルから読み取り可能な Java ソースを再構築しようとする、さらに一歩進んだ工程です。