.CLASS

CLASS-bestand

Java Bytecode Class File
Stel een vraag
SNEL ANTWOORD

Een CLASS-bestand is gecompileerde Java-bytecode - de uitvoer die javac produceert van een .java-bronbestand. Om het uit te voeren heb je Java (een JDK) geïnstalleerd nodig, gebruik daarna het commando „java MyClass”. Om te lezen wat de code doet, open je het in een decompiler zoals JD-GUI. CLASS-bestanden zijn geen documenten; dubbelklikken op een bestand in een bestandsbeheerder zal het niet op een nuttige manier openen.

Ontwikkelaar: Sun Microsystems (now Oracle); part of the Java Platform Categorie: Ontwikkelaarsbestanden Open standaard MIME: application/java-vm
OPENT OP Windows macOS Linux Web
Gerelateerd: .DO · .MD · .HEX · .XSD

Op deze pagina

19k+ extensies geïndexeerd
Laatst beoordeeld op Jul 31, 2026

Niet zeker wat uw bestand is?

Sleep een bestand naar onze identificatietool - we lezen alleen de eerste bytes om het formaat te benoemen.

Identificeer een bestand

Wat is het CLASS-bestandsformaat?

Een .class-bestand bevat gecompileerde broncode geschreven in de programmeertaal Java. .class-bestanden worden gegenereerd door de Java-compiler uit .java-bronbestanden die een of meer klassen definiëren. Elk .class-bestand is het resultaat van een succesvolle compilatie en bevat bytecode - een binaire representatie van een klasse die wordt uitgevoerd door de Java Virtual Machine (JVM).

.class-bestanden worden automatisch gegenereerd tijdens de compilatie van .java-bronbestanden. Omdat bytecode platformonafhankelijk is, draait hetzelfde .class-bestand op elk besturingssysteem waarop een compatibele JVM is geïnstalleerd. Een enkel .java-bronbestand kan een of meer klassen bevatten, en elke klasse krijgt zijn eigen .class-bestand tijdens het compilatieproces.

Compilatie van .java-bestanden naar .class-bestanden wordt uitgevoerd met het javac-commando dat is inbegrepen bij de Java Development Kit (JDK). De meeste Java-programmeeromgevingen - inclusief IDE's zoals IntelliJ IDEA en Eclipse - compileren .class-bestanden automatisch terwijl programmeurs code schrijven.

De Java Runtime Environment (JRE) ondersteunt de uitvoering van .class-bestanden via het java-commando, maar staat geen compilatie toe aangezien de JRE de javac-compiler niet bevat.

Elk .class-bestand begint met het 4-byte magic number 0xCAFEBABE, gevolgd door minor- en major-versievelden die de Java-release identificeren die is gebruikt om het te compileren. Meerdere .class-bestanden worden gewoonlijk samen verpakt in een JAR-archief voor distributie en implementatie.

Omdat de JVM beschikbaar is in vele versies, moet men in gedachten houden dat niet alle .class-bestanden compatibel zijn met alle versies van de runtime. Een bestand dat is gecompileerd voor een nieuwere Java-hoofdversie kan niet worden geladen door een oudere JVM.

Beveiliging & veiligheid

RISICO: MEDIUM

Een .class is gecompileerde code: als je het uitvoert ('java MyClass') met een JVM, wordt het uitgevoerd met de rechten van je gebruiker, dus een onbekende klasse kan - net als een onbekende JAR of EXE - malware bevatten. Behandel gedownloade gecompileerde Java als onbetrouwbaar: voer alleen klassen uit van een bron die je vertrouwt. Het louter decompileren of disassembleren van een .class (JD-GUI, javap) voert de code niet uit en is veilig. Wees ervan bewust dat bytecode de logica van een programma onthult, dus alles wat je compileert kan door anderen worden gedecompileerd, tenzij het geobfusceerd is.

Formaatdetails

in een notendop
VOLLEDIGE NAAMJava Bytecode Class File
ONTWIKKELAARSun Microsystems (now Oracle); part of the Java Platformsinds 1995-1996 (Java 1.0)
MIME-TYPEapplication/java-vm
TYPEGecompileerde Java-bytecode (binair)
STANDAARDOpen · royaltyvrij
GERELATEERD.do.md.hex.xsd
MAGIC BYTES · BESTANDSSIGNATUUR
OFFSET
00010203
HEX
CAFEBABE
ASCII
····
Elk Java-klassebestand begint met het 4-byte magic number 0xCAFEBABE, gevolgd door een 2-byte minor- en 2-byte major-versie (de major-versie vertelt je welke Java-release het gecompileerd heeft, bijv. 52 = Java 8, 61 = Java 17). Dit maakt .class-bestanden triviaal identificeerbaar. (Opmerking: Mach-O fat binaries op macOS gebruiken ook 0xCAFEBABE, maar Java-klassebestanden onderscheiden zich door de versiewoorden die volgen.)

Programma's die CLASS-bestanden openen

Windows4 apps
Eclipse IDE Open-source Importeer de klasse in een project om deze uit te voeren, of gebruik de gebundelde bytecode/decompiler-weergave om deze te inspecteren.
Java (OpenJDK - Eclipse Temurin / Adoptium) Open-source Installeer Temurin JDK, voer dan de klasse uit vanaf de package root: 'java MyClass' (zonder .class extensie). Heeft een main-methode nodig.
JD-GUI (decompiler) Open-source Open de .class (of een JAR) om gereconstrueerde Java-broncode te bekijken - de praktische manier om te lezen wat een .class doet.
IntelliJ IDEA (Community) Freemium Open/sleep een .class - IntelliJ toont een ingebouwde gedecompileerde weergave en kan klassen in een project uitvoeren.
macOS3 apps
Java (OpenJDK - Eclipse Temurin) Open-source Installeer Temurin, daarna 'java MyClass' in de Terminal vanuit de juiste map.
JD-GUI (decompiler) Open-source Open de .class (of een JAR) om gereconstrueerde Java-broncode te bekijken - de praktische manier om te lezen wat een .class doet.
IntelliJ IDEA (Community) Freemium Open/sleep een .class - IntelliJ toont een ingebouwde gedecompileerde weergave en kan klassen in een project uitvoeren.
Linux2 apps
Java (OpenJDK) Open-source Installeer via pakketbeheer ('apt install default-jdk') of Temurin, daarna 'java MyClass'.
JD-GUI / CFR (decompilers) Open-source CFR is een command-line decompiler ('java -jar cfr.jar MyClass.class'); JD-GUI is de grafische optie.
Web1 app
javap (bundled with the JDK) Ingebouwd Geen web - maar de JDK's 'javap -c MyClass' disassembleert een .class naar leesbare bytecode zonder extra tools.

Technische details

diepe specificaties
Formaat-typeGecompileerde Java-bytecode (binair)
MIME-typeapplication/java-vm
Magic bytes0xCAFEBABE (4 bytes op bestandsoffset 0) - aanwezig in elk geldig .class-bestand
Versie-coderingBytes 6-7 (major version) identificeren de doel-Java-release; bijv. 52 = Java 8, 61 = Java 17, 65 = Java 21
UitvoeringsomgevingJava Virtual Machine (JVM) via het `java`-commando
Compilatie-tool`javac`-compiler, inbegrepen in de Java Development Kit (JDK)
PlatformonafhankelijkheidBytecode is CPU-architectuur-neutraal en draait op elk OS met een compatibele JVM
Eén klasse per bestandElke top-level of statische geneste klasse compileert naar zijn eigen afzonderlijke `.class`-bestand
Naamgeving inner classesInner en anonieme klassen produceren extra bestanden met `$` in de naam (bijv. `Outer$Inner.class`)
Constant poolElk bestand bevat een gestructureerde constant pool-tabel met string-literals, klassenamen en veld/methode-descriptors
InstructiesetMaakt gebruik van de JVM-bytecode-instructieset (~200 opcodes), onafhankelijk van enige native CPU-instructieset
Bytecode-verificatorDe JVM verifieert de `.class`-bestandsstructuur en typeveiligheid vóór uitvoering, en weigert misvormde of gemanipuleerde bestanden
DecompilatieKan worden gedisassembleerd met `javap -c` (JDK ingebouwd) of terug worden gedecompileerd naar Java-broncode met tools zoals JD-GUI of CFR
VerpakkingMeestal gedistribueerd gebundeld in `.jar`-archieven (op ZIP gebaseerde containers met meerdere `.class`-bestanden en een manifest)
Android-incompatibiliteitAndroid voert `.class`-bestanden niet rechtstreeks uit; de `d8`-tool converteert ze naar `.dex`-bytecode voor de Android Runtime (ART)
Uitgebracht1995-1996 (Java 1.0)
Open standaardJa · royaltyvrij
Specificatiedocs.oracle.com

CLASS conversies

Community V&A

gevraagd door gebruikers
Stel een korte vraag
Krijg hulp van mensen die met CLASS-bestanden werken. Wees specifiek - vermeld uw systeem en softwareversie.
Geen account nodig · antwoorden meestal binnen een dag

Nog geen vragen - wees de eerste om iets te vragen over CLASS-bestanden.

Veelgestelde vragen

Hoe open ik een CLASS-bestand?
Je opent het niet als een document - het is gecompileerde Java. Om het UIT TE VOEREN heb je Java (JDK) geïnstalleerd nodig, daarna 'java MyClass'. Om te LEZEN wat het doet, open je het in een decompiler zoals JD-GUI, of disassembleer je het met de JDK's 'javap -c MyClass'.
Hoe decompileer ik een .class-bestand terug naar Java-broncode?
Gebruik een decompiler - JD-GUI (sleep de .class erin), of command-line CFR/Fernflower/Procyon. Je krijgt leesbare Java, maar commentaren en originele variabelenamen zijn meestal verdwenen, en geobfusceerde klassen komen er rommelig uit.
Waarom krijg ik 'UnsupportedClassVersionError'?
De klasse is gecompileerd met een nieuwere Java-versie dan die je momenteel draait. Installeer een JDK die minstens zo nieuw is als de versie waarmee het is gebouwd (de major-versie van de klasse: 52=Java 8, 61=Java 17, 65=Java 21), of hercompileer de broncode voor jouw versie.
Heb ik Java nodig om een CLASS-bestand te openen?
Om het uit te voeren, ja - het heeft een JVM nodig. Om het te lezen/decompileren kun je tools zoals JD-GUI gebruiken; de IntelliJ/JD-GUI viewers vertrouwen zelf nog steeds op Java om te draaien, dus in de praktijk zul je Java sowieso geïnstalleerd hebben.
Kan ik een CLASS-bestand converteren naar een EXE?
Niet direct - een .class heeft een JVM nodig en is geen native Windows-code. Verpak de klassen in een uitvoerbare JAR en wrap deze met jpackage of Launch4j; het resultaat vertrouwt nog steeds op (of bundelt) Java.
Wat is het verschil tussen een .class- en een .jar-bestand?
Een .class is één gecompileerde klasse; een JAR is een ZIP-bundel van vele .class-bestanden plus een manifest, gebruikt om een heel programma of bibliotheek te verzenden. Echte applicaties worden gedistribueerd als JAR's, niet als losse .class-bestanden.

Referenties

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

Blijf ontdekken

door de database

Populaire extensies deze week

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

Gerelateerde extensies

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

Gratis bestandstools

Een bestandsidentificatie en afbeeldingsconverter in de browser - alles draait op uw eigen apparaat.

Open de gereedschapskist

Blader door bestandsextensies A-Z