.CLASS

CLASS Datei

Java Bytecode Class File
Frage stellen
SCHNELLE ANTWORT

Eine CLASS-Datei ist kompilierter Java-Bytecode - die Ausgabe, die javac aus einer .java-Quelldatei erzeugt. Um sie auszuführen, benötigen Sie installiertes Java (ein JDK) und verwenden dann den Befehl "java MyClass". Um den Code zu lesen, öffnen Sie sie in einem Decompiler wie JD-GUI. CLASS-Dateien sind keine Dokumente; ein Doppelklick im Dateimanager öffnet sie nicht sinnvoll.

Entwickler: Sun Microsystems (now Oracle); part of the Java Platform Kategorie: Developerdateien Offener Standard MIME: application/java-vm
VERFÜGBAR AUF Windows macOS Linux Web
Verwandt: .DO · .MD · .HEX · .XSD

Auf dieser Seite

19k+ Erweiterungen indexiert
Zuletzt geprüft Jul 31, 2026

Nicht sicher, was Ihre Datei ist?

Legen Sie eine beliebige Datei in unseren Identifikator - wir lesen nur die ersten Bytes, um das Format zu benennen.

Datei identifizieren

Was ist das CLASS-Dateiformat?

Eine .class-Datei enthält kompilierten Quellcode, der in der Programmiersprache Java geschrieben wurde. .class-Dateien werden vom Java-Compiler aus .java-Quelldateien erzeugt, die eine oder mehrere Klassen definieren. Jede .class-Datei ist das Ergebnis einer erfolgreichen Kompilierung und enthält Bytecode - eine binäre Darstellung einer Klasse, die von der Java Virtual Machine (JVM) ausgeführt wird.

.class-Dateien werden während der Kompilierung von .java-Quelldateien automatisch generiert. Da Bytecode plattformunabhängig ist, läuft dieselbe .class-Datei auf jedem Betriebssystem, auf dem eine kompatible JVM installiert ist. Eine einzelne .java-Quelldatei kann eine oder mehrere Klassen enthalten, und jede Klasse erhält während der Kompilierung ihre eigene .class-Datei.

Die Kompilierung von .java-Dateien in .class-Dateien erfolgt mit dem Befehl javac, der im Java Development Kit (JDK) enthalten ist. Die meisten Java-Entwicklungsumgebungen - darunter IDEs wie IntelliJ IDEA und Eclipse - kompilieren .class-Dateien automatisch, während Programmierer Code schreiben.

Die Java Runtime Environment (JRE) unterstützt die Ausführung von .class-Dateien über den Befehl java, erlaubt jedoch keine Kompilierung, da die JRE den javac-Compiler nicht enthält.

Jede .class-Datei beginnt mit der 4-Byte-Magic-Number 0xCAFEBABE, gefolgt von Minor- und Major-Versionsfeldern, die das zur Kompilierung verwendete Java-Release identifizieren. Mehrere .class-Dateien werden häufig in einem JAR-Archiv für Verteilung und Deployment zusammengefasst.

Da die JVM in vielen Versionen verfügbar ist, muss beachtet werden, dass nicht alle .class-Dateien mit allen Runtime-Versionen kompatibel sind. Eine Datei, die für eine neuere Java-Major-Version kompiliert wurde, kann nicht von einer älteren JVM geladen werden.

Sicherheit

RISIKO: MEDIUM

Eine .class-Datei ist kompilierter Code: Wenn Sie sie mit einer JVM ausführen ('java MyClass'), wird sie mit den Berechtigungen Ihres Benutzers ausgeführt, sodass eine unbekannte Klasse - wie ein unbekanntes JAR oder eine EXE - Malware enthalten kann. Behandeln Sie heruntergeladenes kompiliertes Java als nicht vertrauenswürdig: Führen Sie Klassen nur aus einer Quelle aus, der Sie vertrauen. Das bloße Dekompilieren oder Disassemblieren einer .class (JD-GUI, javap) führt sie nicht aus und ist sicher. Beachten Sie, dass Bytecode die Logik eines Programms preisgibt, sodass alles, was Sie kompilieren, von anderen dekompiliert werden kann, sofern es nicht obfuskiert ist.

Formatdetails

kurz gefasst
VOLLSTÄNDIGER NAMEJava Bytecode Class File
ENTWICKLERSun Microsystems (now Oracle); part of the Java Platformseit 1995-1996 (Java 1.0)
MIME TYPEapplication/java-vm
TYPKompilierter Java-Bytecode (binär)
STANDARDOffen · lizenzfrei
MAGIC BYTES · DATEISIGNATUR
OFFSET
00010203
HEX
CAFEBABE
ASCII
····
Jede Java-Class-Datei beginnt mit der 4-Byte-Magic-Number 0xCAFEBABE, gefolgt von einer 2-Byte-Minor- und einer 2-Byte-Major-Versionsnummer (die Major-Version gibt an, mit welcher Java-Version sie kompiliert wurde, z. B. 52 = Java 8, 61 = Java 17). Dies macht .class-Dateien trivial identifizierbar. (Hinweis: Mach-O Fat Binaries unter macOS verwenden ebenfalls 0xCAFEBABE, Java-Class-Dateien werden jedoch durch die folgenden Versionswörter unterschieden.)

Programme zum Öffnen von CLASS-Dateien

Windows4 apps
Eclipse IDE Open Source Die Klasse in ein Projekt importieren, um sie auszuführen, oder die integrierte Bytecode-/Dekompiler-Ansicht zur Inspektion verwenden.
Java (OpenJDK - Eclipse Temurin / Adoptium) Open Source Installieren Sie Temurin JDK, dann führen Sie die Klasse aus ihrem Paketstamm aus: 'java MyClass' (ohne .class-Erweiterung). Benötigt eine main-Methode.
JD-GUI (decompiler) Open Source Öffnen Sie die .class (oder ein JAR), um rekonstruierten Java-Quellcode anzuzeigen - der praktische Weg zum Lesen, was eine .class tut.
IntelliJ IDEA (Community) Freemium Die .class öffnen/hineinziehen - IntelliJ zeigt eine integrierte dekompilierte Ansicht und kann Klassen in einem Projekt ausführen.
macOS3 apps
Java (OpenJDK - Eclipse Temurin) Open Source Temurin installieren, dann 'java MyClass' im Terminal aus dem richtigen Verzeichnis.
JD-GUI (decompiler) Open Source Öffnen Sie die .class (oder ein JAR), um rekonstruierten Java-Quellcode anzuzeigen - der praktische Weg zum Lesen, was eine .class tut.
IntelliJ IDEA (Community) Freemium Die .class öffnen/hineinziehen - IntelliJ zeigt eine integrierte dekompilierte Ansicht und kann Klassen in einem Projekt ausführen.
Linux2 apps
Java (OpenJDK) Open Source Über den Paketmanager installieren ('apt install default-jdk') oder Temurin, dann 'java MyClass'.
JD-GUI / CFR (decompilers) Open Source CFR ist ein Kommandozeilen-Decompiler ('java -jar cfr.jar MyClass.class'); JD-GUI ist die GUI-Option.
Web1 app
javap (bundled with the JDK) Integriert Kein Web - aber das JDK-Tool 'javap -c MyClass' disassembliert eine .class in lesbaren Bytecode ohne zusätzliches Tool.

Technische Details

technische Spezifikation
FormattypKompilierter Java-Bytecode (binär)
MIME-Typapplication/java-vm
Magic Bytes0xCAFEBABE (4 Bytes an Dateioffset 0) - in jeder gültigen .class-Datei vorhanden
VersionskodierungBytes 6-7 (Major-Version) identifizieren das Ziel-Java-Release; z. B. 52 = Java 8, 61 = Java 17, 65 = Java 21
AusführungsumgebungJava Virtual Machine (JVM) über den Befehl `java`
Kompilierungstool`javac`-Compiler, im Java Development Kit (JDK) enthalten
PlattformunabhängigkeitBytecode ist CPU-architektur-neutral und läuft auf jedem Betriebssystem mit einer kompatiblen JVM
Eine Klasse pro DateiJede oberste oder statisch verschachtelte Klasse wird in eine eigene separate `.class`-Datei kompiliert
Benennung innerer KlassenInnere und anonyme Klassen erzeugen zusätzliche Dateien mit `$` im Namen (z. B. `Outer$Inner.class`)
KonstantenpoolJede Datei enthält eine strukturierte Konstantenpool-Tabelle mit String-Literalen, Klassennamen und Feld-/Methodendeskriptoren
BefehlssatzVerwendet den JVM-Bytecode-Befehlssatz (~200 Opcodes), unabhängig von einem nativen CPU-Befehlssatz
Bytecode-VerifiziererDie JVM überprüft die `.class`-Dateistruktur und Typsicherheit vor der Ausführung und lehnt fehlerhafte oder manipulierte Dateien ab
DekompilierungKann mit `javap -c` (JDK-integriert) disassembliert oder mit Tools wie JD-GUI oder CFR zurück in Java-Quellcode dekompiliert werden
PaketierungTypischerweise gebündelt innerhalb von `.jar`-Archiven (ZIP-basierte Container mit mehreren `.class`-Dateien und einem Manifest) verteilt
Android-InkompatibilitätAndroid führt `.class`-Dateien nicht direkt aus; das `d8`-Tool konvertiert sie in `.dex`-Bytecode für die Android Runtime (ART)
Veröffentlicht1995-1996 (Java 1.0)
Offener StandardJa · lizenzgebührenfrei
Spezifikationdocs.oracle.com

CLASS-Konvertierungen

Community Q&A

von Nutzern gefragt
Schnelle Frage stellen
Holen Sie sich Hilfe von Menschen, die mit CLASS-Dateien arbeiten. Seien Sie konkret - geben Sie Ihr System und die Softwareversion an.
Kein Konto erforderlich · Antworten meist innerhalb eines Tages

Noch keine Fragen - stellen Sie die erste Frage zu CLASS-Dateien.

Häufig gestellte Fragen

Wie öffne ich eine CLASS-Datei?
Man öffnet sie nicht wie ein Dokument - sie ist kompiliertes Java. Um sie AUSZUFÜHREN benötigen Sie installiertes Java (JDK), dann 'java MyClass'. Um zu LESEN, was sie tut, öffnen Sie sie in einem Decompiler wie JD-GUI, oder disassemblieren Sie sie mit dem JDK-Befehl 'javap -c MyClass'.
Wie dekompiliere ich eine .class-Datei zurück in Java-Quellcode?
Verwenden Sie einen Decompiler - JD-GUI (die .class hineinziehen), oder die Kommandozeilen-Tools CFR/Fernflower/Procyon. Sie erhalten lesbares Java, aber Kommentare und ursprüngliche Variablennamen sind in der Regel verloren, und obfuskierte Klassen kommen unordentlich heraus.
Warum erhalte ich 'UnsupportedClassVersionError'?
Die Klasse wurde mit einem neueren Java als dem von Ihnen verwendeten kompiliert. Installieren Sie ein JDK, das mindestens so neu wie das zur Erstellung verwendete ist (die Major-Version der Klasse: 52=Java 8, 61=Java 17, 65=Java 21), oder kompilieren Sie den Quellcode für Ihre Version neu.
Benötige ich Java, um eine CLASS-Datei zu öffnen?
Zum Ausführen ja - sie benötigt eine JVM. Zum Lesen/Dekompilieren können Sie Tools wie JD-GUI verwenden; die IntelliJ/JD-GUI-Betrachter benötigen zum Ausführen selbst Java, so dass Sie in der Praxis Java ohnehin installiert haben werden.
Kann ich eine CLASS-Datei in eine EXE konvertieren?
Nicht direkt - eine .class benötigt eine JVM und ist kein nativer Windows-Code. Packen Sie die Klassen in ein ausführbares JAR und umhüllen Sie es mit jpackage oder Launch4j; das Ergebnis ist nach wie vor auf (oder bündelt) Java angewiesen.
Was ist der Unterschied zwischen einer .class- und einer .jar-Datei?
Eine .class ist eine kompilierte Klasse; ein JAR ist ein ZIP-Bundle aus vielen .class-Dateien plus einem Manifest, das zum Versenden eines ganzen Programms oder einer Bibliothek verwendet wird. Echte Anwendungen werden als JARs verteilt, nicht als einzelne .class-Dateien.

Quellen

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

Weiter entdecken

in der Datenbank

Top-Erweiterungen dieser Woche

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

Verwandte Erweiterungen

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

Kostenlose Datei-Tools

Ein Browser-Dateiidentifikator und Bildkonverter - alles läuft auf Ihrem Gerät.

Toolbox öffnen

Dateierweiterungen A-Z durchsuchen