.CLASS

CLASS ファイル

Java Bytecode Class File
質問する
クイック回答

CLASS ファイルはコンパイルされた Java バイトコードであり、javac が .java ソースファイルから生成する出力です。実行するには Java (JDK) がインストールされている必要があり、«java MyClass» コマンドを使用します。コードの内容を確認するには、JD-GUI などのデコンパイラで開きます。CLASS ファイルはドキュメントではないため、ファイルマネージャーでダブルクリックしても実用的に開くことはできません。

開発元: Sun Microsystems (now Oracle); part of the Java Platform カテゴリ: 開発用ファイル オープンスタンダード MIME: application/java-vm
対応OS Windows macOS Linux Web
関連: .DO · .MD · .HEX · .XSD

このページの内容

19k+ 個の拡張子を索引済み
最終確認日:Jul 31, 2026

ファイルの種類がわかりませんか?

ファイルを識別ツールにドロップしてください。最初の数バイトを読み取って形式を特定します。

ファイルを識別する

CLASS ファイル形式とは?

.class ファイルには、Java プログラミング言語で記述された コンパイル済みソースコード が含まれています。.class ファイルは、1つ以上のクラスを定義する .java ソースファイル から Java コンパイラによって生成されます。各 .class ファイルはコンパイルが成功した結果であり、Java 仮想マシン (JVM) によって実行されるクラスのバイナリ表現であるバイトコードを保持しています。

.class ファイルは、.java ソースファイルのコンパイル中に自動的に生成されます。バイトコードはプラットフォームに依存しないため、互換性のある JVM がインストールされているオペレーティングシステムであれば、同じ .class ファイルが動作します。1つの .java ソースファイルに1つ以上のクラスを含めることができ、コンパイルプロセス中に各クラスが独自の .class ファイルを取得します。

.java ファイルから .class ファイルへのコンパイルは、Java Development Kit (JDK) に含まれる javac コマンドを使用して実行されます。IntelliJ IDEA や Eclipse などの IDE を含むほとんどの Java プログラミング環境では、プログラマがコードを書く際に自動的に .class ファイルをコンパイルします。

Java Runtime Environment (JRE) は java コマンドを介した .class ファイルの実行をサポートしていますが、JRE には javac コンパイラが含まれていないため、コンパイルを行うことはできません。

すべての .class ファイルは 4 バイトのマジックナンバー 0xCAFEBABE で始まり、その後にコンパイルに使用された Java リリースを特定するマイナーおよびメジャーバージョンフィールドが続きます。複数の .class ファイルは、配布やデプロイのために通常 JAR アーカイブ にまとめられます。

JVM には多くのバージョンがあるため、すべての .class ファイルがすべてのバージョンのランタイムと互換性があるわけではないことに注意してください。新しい Java メジャーバージョンをターゲットにしてコンパイルされたファイルは、古い JVM ではロードできません。

セキュリティと安全性

リスク: MEDIUM

.class はコンパイルされたコードです。JVM で実行(«java MyClass»)すると、ユーザーの権限で実行されるため、不明なクラスは不明な JAR や EXE と同様にマルウェアを含んでいる可能性があります。ダウンロードしたコンパイル済み Java は信頼できないものとして扱い、信頼できるソースからのクラスのみを実行してください。単に .class をデコンパイルまたは逆アセンブル(JD-GUI, javap)するだけであれば、実行はされないため安全です。バイトコードはプログラムのロジックを明らかにするため、難読化されていない限り、コンパイルしたものは他者によってデコンパイルされる可能性があることに注意してください。

形式の詳細

概要
正式名称Java Bytecode Class File
開発元Sun Microsystems (now Oracle); part of the Java Platform登場時期 1995-1996 (Java 1.0)
MIME タイプapplication/java-vm
タイプコンパイル済み Java バイトコード (バイナリ)
標準規格オープン・ロイヤリティフリー
マジックバイト ・ ファイルシグネチャ
オフセット
00010203
16進数
CAFEBABE
ASCII
····
すべての Java クラスファイルは 4 バイトのマジックナンバー 0xCAFEBABE で始まり、その後に 2 バイトのマイナーバージョンと 2 バイトのメジャーバージョンが続きます(メジャーバージョンは、どの Java リリースでコンパイルされたかを示します。例:52 = Java 8、61 = Java 17)。これにより、.class ファイルは容易に識別可能です。(注:macOS の Mach-O ファットバイナリも 0xCAFEBABE を使用しますが、Java クラスファイルはそれに続くバージョンワードによって区別されます。)

CLASS ファイルを開くプログラム

Windows4 apps
Eclipse IDE オープンソース クラスをプロジェクトにインポートして実行するか、同梱のバイトコード/デコンパイラビューを使用して検査します。
Java (OpenJDK - Eclipse Temurin / Adoptium) オープンソース Temurin JDK をインストールし、パッケージのルートからクラスを実行します:«java MyClass»(.class 拡張子は不要)。main メソッドが必要です。
JD-GUI (decompiler) オープンソース .class(または JAR)を開いて再構成された Java ソースを表示します。 .class の動作を確認するための実用的な方法です。
IntelliJ IDEA (Community) フリーミアム .class を開くかドラッグします。IntelliJ は組み込みのデコンパイルビューを表示し、プロジェクト内でクラスを実行できます。
macOS3 apps
Java (OpenJDK - Eclipse Temurin) オープンソース Temurin をインストールし、適切なディレクトリからターミナルで «java MyClass» を実行します。
JD-GUI (decompiler) オープンソース .class(または JAR)を開いて再構成された Java ソースを表示します。 .class の動作を確認するための実用的な方法です。
IntelliJ IDEA (Community) フリーミアム .class を開くかドラッグします。IntelliJ は組み込みのデコンパイルビューを表示し、プロジェクト内でクラスを実行できます。
Linux2 apps
Java (OpenJDK) オープンソース パッケージマネージャー(«apt install default-jdk»)または Temurin 経由でインストールし、«java MyClass» を実行します。
JD-GUI / CFR (decompilers) オープンソース CFR はコマンドラインデコンパイラ(«java -jar cfr.jar MyClass.class»)です。JD-GUI は GUI オプションです。
Web1 app
javap (bundled with the JDK) 標準搭載 Web ツールではありませんが、JDK の «javap -c MyClass» を使用すると、追加のツールなしで .class を読み取り可能なバイトコードに逆アセンブルできます。

技術的詳細

詳細仕様
フォーマットタイプコンパイル済み Java バイトコード (バイナリ)
MIME タイプapplication/java-vm
マジックバイト0xCAFEBABE (ファイルオフセット 0 の 4 バイト) - すべての有効な .class ファイルに存在
バージョンエンコーディングバイト 6-7 (メジャーバージョン) がターゲットの Java リリースを特定します。例: 52 = Java 8, 61 = Java 17, 65 = Java 21
実行環境`java` コマンドを介した Java 仮想マシン (JVM)
コンパイルツールJava Development Kit (JDK) に含まれる `javac` コンパイラ
プラットフォーム独立性バイトコードは CPU アーキテクチャに依存せず、互換性のある JVM を備えた任意の OS で動作
1ファイルにつき1クラス各トップレベルクラスまたは静的ネストされたクラスは、個別の `.class` ファイルにコンパイルされます
内部クラスの命名内部クラスや匿名クラスは、名前に `$` を含む追加のファイルを生成します (例: `Outer$Inner.class`)
定数プール各ファイルには、文字列リテラル、クラス名、フィールド/メソッド記述子を保持する構造化された定数プールテーブルが埋め込まれています
命令セットネイティブ CPU 命令セットとは無関係な、JVM バイトコード命令セット (約 200 個のオペコード) を使用します
バイトコード検証JVM は実行前に `.class` ファイルの構造と型安全性を検証し、不正な形式や改ざんされたファイルを拒否します
デコンパイル`javap -c` (JDK 組み込み) で逆アセンブルするか、JD-GUI や CFR などのツールで Java ソースにデコンパイル可能
パッケージング通常、複数の `.class` ファイルとマニフェストを保持する `.jar` アーカイブ (ZIP ベースのコンテナ) 内にバンドルされて配布されます
Android との非互換性Android は `.class` ファイルを直接実行しません。`d8` ツールがそれらを Android Runtime (ART) 用の `.dex` バイトコードに変換します
リリース日1995-1996 (Java 1.0)
オープンスタンダードはい · ロイヤリティフリー
仕様書docs.oracle.com

CLASS の変換

コミュニティ Q&A

ユーザーからの質問
質問する
CLASS ファイルを扱うユーザーからヘルプを得られます。OSやソフトウェアのバージョンなど、具体的に記載してください。
アカウント不要 ・ 通常1日以内に回答されます

まだ質問はありません。CLASS ファイルについて最初の質問をしてみましょう。

よくある質問

CLASS ファイルを開くにはどうすればよいですか?
ドキュメントのように開くことはありません。これはコンパイルされた Java です。実行するには Java (JDK) をインストールし、«java MyClass» を実行します。内容を「読む」には、JD-GUI などのデコンパイラで開くか、JDK の «javap -c MyClass» で逆アセンブルします。
.class ファイルを Java ソースにデコンパイルするにはどうすればよいですか?
デコンパイラを使用します。JD-GUI(.class をドラッグインする)や、コマンドラインの CFR/Fernflower/Procyon などがあります。読み取り可能な Java が得られますが、コメントや元の変数名は通常失われ、難読化されたクラスは複雑な出力になります。
«UnsupportedClassVersionError» が発生するのはなぜですか?
そのクラスは、実行している Java よりも新しいバージョンでコンパイルされています。ビルド時と同じかそれより新しい JDK をインストールするか(クラスのメジャーバージョン:52=Java 8、61=Java 17、65=Java 21)、使用しているバージョンに合わせてソースを再コンパイルしてください。
CLASS ファイルを開くのに Java は必要ですか?
実行するには JVM が必要なので、はい、必要です。読み取りやデコンパイルには JD-GUI などのツールを使用できますが、IntelliJ や JD-GUI 自体も動作に Java を利用しているため、実際にはどちらにせよ Java をインストールすることになります。
CLASS ファイルを EXE に変換できますか?
直接はできません。 .class は JVM を必要とし、Windows のネイティブコードではありません。クラスを 実行可能 JAR にパッケージ化し、jpackage や Launch4j でラップしてください。その結果も Java に依存する(または Java を同梱する)ことになります。
.class と .jar ファイルの違いは何ですか?
.class はコンパイルされた1つのクラスです。JAR は、プログラム全体やライブラリを配布するために使用される、多数の .class ファイルとマニフェストをまとめた ZIP 形式のバンドルです。実際のアプリケーションは、バラバラの .class ファイルではなく JAR として配布されます。

参考文献

1Oracle - The Java Virtual Machine Specification, Ch.4: The class File Formatdocs.oracle.com
2Oracle - javap tool (class disassembler)docs.oracle.com

さらに探索

データベース全体から

今週のトップ拡張子

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.MDMarkdown Document
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.PARTPartial Download File
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.AVIFAV1 Image File Format (AVIF)
10.DBSQLite Database File

関連する拡張子

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

無料ファイルツール

ブラウザで動作するファイル識別および画像変換ツール。すべてお使いのデバイス上で実行されます。

ツールボックスを開く

ファイル拡張子を A-Z で閲覧