.CLASS

CLASS-fil

Java Bytecode Class File
Ställ en fråga
SNABBT SVAR

En CLASS-fil är kompilerad Java-bytecode - det resultat som javac producerar från en .java-källfil. För att köra den behöver du Java (ett JDK) installerat, använd sedan kommandot «java MyClass». För att läsa vad koden gör, öppna den i en decompiler som JD-GUI. CLASS-filer är inte dokument; att dubbelklicka på en i en filhanterare kommer inte att öppna den på ett användbart sätt.

Utvecklare: Sun Microsystems (now Oracle); part of the Java Platform Kategori: Utvecklarfiler Öppen standard MIME: application/java-vm
ÖPPNAS PÅ Windows macOS Linux Web
Relaterat: .DO · .MD · .HEX · .XSD

På denna sida

19k+ filtillägg indexerade
Senast granskad Jul 31, 2026

Osäker på vad din fil är?

Släpp valfri fil i vår identifierare - vi läser bara de första byten för att namnge formatet.

Identifiera en fil

Vad är filformatet CLASS?

En .class-fil innehåller kompilerad källkod skriven i programmeringsspråket Java. .class-filer genereras av Java-kompilatorn från .java-källfiler som definierar en eller flera klasser. Varje .class-fil är resultatet av en lyckad kompilering och innehåller bytecode - en binär representation av en klass som körs av Java Virtual Machine (JVM).

.class-filer genereras automatiskt under kompileringen av .java-källfiler. Eftersom bytecode är plattformsoberoende körs samma .class-fil på alla operativsystem som har en kompatibel JVM installerad. En enskild .java-källfil kan innehålla en eller flera klasser, och varje klass får sin egen .class-fil under kompileringsprocessen.

Kompilering av .java-filer till .class-filer utförs med kommandot javac som ingår i Java Development Kit (JDK). De flesta Java-programmeringsmiljöer - inklusive IDE:er som IntelliJ IDEA och Eclipse - kompilerar .class-filer automatiskt när programmerare skriver kod.

Java Runtime Environment (JRE) stöder körning av .class-filer via kommandot java, men tillåter inte kompilering eftersom JRE inte inkluderar javac-kompilatorn.

Varje .class-fil börjar med det 4 byte långa magiska numret 0xCAFEBABE, följt av fält för minor- och major-versioner som identifierar den Java-utgåva som användes för att kompilera den. Flera .class-filer paketeras vanligtvis tillsammans i ett JAR-arkiv för distribution och driftsättning.

Eftersom JVM finns i många versioner måste man komma ihåg att inte alla .class-filer är kompatibla med alla versioner av körtidsmiljön. En fil som kompilerats för en nyare Java-huvudversion kan inte laddas av en äldre JVM.

Säkerhet & trygghet

RISK: MEDIUM

En .class-fil är kompilerad kod: om du kör den («java MyClass») med en JVM, körs den med din användares behörigheter, så en okänd klass - precis som en okänd JAR eller EXE - kan innehålla skadlig kod. Hantera nedladdad kompilerad Java som otillförlitlig: kör endast klasser från källor du litar på. Att bara dekompilera eller disassemblera en .class-fil (JD-GUI, javap) exekverar den inte och är säkert. Var medveten om att bytecode avslöjar ett programs logik, så allt du kompilerar kan dekompileras av andra om det inte är obfuskerat.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNJava Bytecode Class File
UTVECKLARESun Microsystems (now Oracle); part of the Java Platformsedan 1995-1996 (Java 1.0)
MIME-TYPapplication/java-vm
TYPKompilerad Java-bytecode (binär)
STANDARDÖppen · royaltyfri
MAGIC BYTES · FILSIGNATUR
OFFSET
00010203
HEX
CAFEBABE
ASCII
····
Varje Java-klassfil börjar med det 4 byte långa magiska numret 0xCAFEBABE, följt av en 2-byte minor- och 2-byte major-version (major-versionen talar om vilken Java-utgåva som kompilerade den, t.ex. 52 = Java 8, 61 = Java 17). Detta gör .class-filer trivialt identifierbara. (Notera: Mach-O fat binaries på macOS använder också 0xCAFEBABE, men Java-klassfiler särskiljs genom de versionsord som följer.)

Program som öppnar CLASS-filer

Windows4 apps
Eclipse IDE Öppen källkod Importera klassen till ett projekt för att köra den, eller använd den medföljande bytecode/decompiler-vyn för att inspektera den.
Java (OpenJDK - Eclipse Temurin / Adoptium) Öppen källkod Installera Temurin JDK, kör sedan klassen från dess paketrot: «java MyClass» (utan filtillägget .class). Kräver en main-metod.
JD-GUI (decompiler) Öppen källkod Öppna .class-filen (eller en JAR) för att se rekonstruerad Java-källkod - det praktiska sättet att läsa vad en .class-fil gör.
IntelliJ IDEA (Community) Freemium Öppna/dra en .class-fil - IntelliJ visar en inbyggd dekompilerad vy och kan köra klasser i ett projekt.
macOS3 apps
Java (OpenJDK - Eclipse Temurin) Öppen källkod Installera Temurin, kör sedan «java MyClass» i terminalen från rätt katalog.
JD-GUI (decompiler) Öppen källkod Öppna .class-filen (eller en JAR) för att se rekonstruerad Java-källkod - det praktiska sättet att läsa vad en .class-fil gör.
IntelliJ IDEA (Community) Freemium Öppna/dra en .class-fil - IntelliJ visar en inbyggd dekompilerad vy och kan köra klasser i ett projekt.
Linux2 apps
Java (OpenJDK) Öppen källkod Installera via pakethanterare («apt install default-jdk») eller Temurin, kör sedan «java MyClass».
JD-GUI / CFR (decompilers) Öppen källkod CFR är en decompiler för kommandoraden («java -jar cfr.jar MyClass.class»); JD-GUI är alternativet med grafiskt gränssnitt.
Web1 app
javap (bundled with the JDK) Inbyggd Inte webbaserat - men JDK:s «javap -c MyClass» disassemblerar en .class-fil till läsbar bytecode utan extra verktyg.

Tekniska detaljer

djup specifikation
FormattypKompilerad Java-bytecode (binär)
MIME-typapplication/java-vm
Magic bytes0xCAFEBABE (4 byte vid filoffset 0) - finns i varje giltig .class-fil
VersionskodningByte 6-7 (major version) identifierar målversionen av Java; t.ex. 52 = Java 8, 61 = Java 17, 65 = Java 21
ExekveringsmiljöJava Virtual Machine (JVM) via kommandot `java`
Kompileringsverktyg`javac`-kompilatorn, ingår i Java Development Kit (JDK)
PlattformsoberoendeBytecode är oberoende av CPU-arkitektur och körs på alla OS med en kompatibel JVM
En klass per filVarje toppnivåklass eller statisk nästlad klass kompileras till sin egen separata `.class`-fil
Namngivning av inre klasserInre och anonyma klasser skapar ytterligare filer med `$` i namnet (t.ex. `Outer$Inner.class`)
Constant poolVarje fil bäddar in en strukturerad konstantpoolstabell som innehåller strängliteraler, klassnamn och fält-/metodbeskrivningar
InstruktionsuppsättningAnvänder JVM:s instruktionsuppsättning för bytecode (~200 opkoder), oberoende av någon infödd CPU-instruktionsuppsättning
Bytecode-verifierareJVM verifierar `.class`-filens struktur och typsäkerhet före exekvering och avvisar felaktiga eller manipulerade filer
DekompileringKan disassembleras med `javap -c` (inbyggt i JDK) eller dekompileras tillbaka till Java-källkod med verktyg som JD-GUI eller CFR
PaketeringDistribueras vanligtvis paketerade inuti `.jar`-arkiv (ZIP-baserade behållare som innehåller flera `.class`-filer och ett manifest)
Android-inkompatibilitetAndroid exekverar inte `.class`-filer direkt; verktyget `d8` konverterar dem till `.dex`-bytecode för Android Runtime (ART)
Släppt1995-1996 (Java 1.0)
Öppen standardJa · royaltyfri
Specifikationdocs.oracle.com

CLASS-konverteringar

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med CLASS-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag

Inga frågor än - bli den första att fråga om CLASS-filer.

Vanliga frågor

Hur öppnar jag en CLASS-fil?
Du öppnar den inte som ett dokument - det är kompilerad Java. För att KÖRA den behöver du Java (JDK) installerat, använd sedan «java MyClass». För att LÄSA vad den gör, öppna den i en decompiler som JD-GUI, eller disassemblera den med JDK:s «javap -c MyClass».
Hur dekompilerar jag en .class-fil tillbaka till Java-källkod?
Använd en decompiler - JD-GUI (dra in .class-filen), eller kommandoradsverktyg som CFR/Fernflower/Procyon. Du får läsbar Java, men kommentarer och ursprungliga variabelnamn är vanligtvis borta, och obfuskera klasser blir svårlästa.
Varför får jag «UnsupportedClassVersionError»?
Klassen kompilerades med en nyare Java-version än den du kör. Installera ett JDK som är minst lika nytt som det som byggde den (klassens huvudversion: 52=Java 8, 61=Java 17, 65=Java 21), eller kompilera om källkoden för din version.
Behöver jag Java för att öppna en CLASS-fil?
För att köra den, ja - den behöver en JVM. För att läsa/dekompilera den kan du använda verktyg som JD-GUI; visningsverktygen i IntelliJ/JD-GUI förlitar sig fortfarande på Java för att själva köras, så i praktiken kommer du att ha Java installerat oavsett.
Kan jag konvertera en CLASS-fil till en EXE?
Inte direkt - en .class-fil behöver en JVM och är inte infödd Windows-kod. Paketera klasserna i en körbar JAR och omslut den med jpackage eller Launch4j; resultatet förlitar sig fortfarande på (eller inkluderar) Java.
Vad är skillnaden mellan en .class- och en .jar-fil?
En .class är en enskild kompilerad klass; en JAR är ett ZIP-paket med många .class-filer plus ett manifest, som används för att leverera ett helt program eller bibliotek. Riktiga applikationer distribueras som JAR-filer, inte som lösa .class-filer.

Referenser

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

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

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

Relaterade filtillägg

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

Gratis filverktyg

En filidentifierare och bildkonverterare direkt i webbläsaren - allt körs på din enhet.

Öppna verktygslådan

Bläddra bland filtillägg A-Ö