.CLASS

CLASS-fil

Java Bytecode Class File
Still et spørsmål
HURTIGSVAR

En CLASS-fil er kompilert Java-bytecode - resultatet javac produserer fra en .java-kildefil. For å kjøre den trenger du Java (en JDK) installert, og deretter bruke kommandoen «java MyClass». For å lese hva koden gjør, åpne den i en dekompilator som JD-GUI. CLASS-filer er ikke dokumenter; å dobbeltklikke på en i en filbehandler vil ikke åpne den på en nyttig måte.

Utvikler: Sun Microsystems (now Oracle); part of the Java Platform Kategori: Utviklerfiler Åpen standard MIME: application/java-vm
ÅPNES PÅ Windows macOS Linux Web
Relatert: .DO · .MD · .HEX · .XSD

På denne siden

19k+ filendelser indeksert
Sist vurdert Jul 31, 2026

Usikker på hva filen din er?

Slipp hvilken som helst fil inn i vår identifikator - vi leser bare de første bytene for å navngi formatet.

Identifiser en fil

Hva er CLASS-filformatet?

En .class-fil inneholder kompilert kildekode skrevet i programmeringsspråket Java. .class-filer genereres av Java-kompilatoren fra .java-kildefiler som definerer én eller flere klasser. Hver .class-fil er resultatet av en vellykket kompilering og inneholder bytecode - en binær representasjon av en klasse som utføres av Java Virtual Machine (JVM).

.class-filer genereres automatisk under kompileringen av .java-kildefiler. Fordi bytecode er plattformuavhengig, kjører den samme .class-filen på alle operativsystemer som har en kompatibel JVM installert. En enkelt .java-kildefil kan inneholde én eller flere klasser, og hver klasse får sin egen .class-fil under kompileringsprosessen.

Kompilering av .java-filer til .class-filer utføres ved hjelp av kommandoen javac som følger med Java Development Kit (JDK). De fleste Java-programmeringsmiljøer - inkludert IDE-er som IntelliJ IDEA og Eclipse - kompilerer .class-filer automatisk mens programmerere skriver kode.

Java Runtime Environment (JRE) støtter kjøring av .class-filer via kommandoen java, men tillater ikke kompilering siden JRE ikke inkluderer kompilatoren javac.

Hver .class-fil starter med det 4-byte lange magiske tallet 0xCAFEBABE, etterfulgt av felt for minor- og major-versjon som identifiserer Java-utgivelsen som ble brukt til å kompilere den. Flere .class-filer pakkes vanligvis sammen i et JAR-arkiv for distribusjon og utrulling.

Siden JVM er tilgjengelig i mange versjoner, må man huske på at ikke alle .class-filer er kompatible med alle versjoner av kjøretidsmiljøet. En fil som er kompilert for en nyere Java-hovedversjon kan ikke lastes av en eldre JVM.

Sikkerhet og trygghet

RISIKO: MEDIUM

En .class-fil er kompilert kode: hvis du kjører den («java MyClass») med en JVM, utføres den med din brukers tillatelser. En ukjent klasse - i likhet med en ukjent JAR eller EXE - kan inneholde skadelig programvare. Behandle nedlastet kompilert Java som upålitelig: kjør kun klasser fra kilder du stoler på. Å bare dekompilere eller disassemblere en .class-fil (JD-GUI, javap) utfører den ikke og er trygt. Vær oppmerksom på at bytecode avslører et programs logikk, så alt du kompilerer kan dekompileres av andre med mindre det er obfuskert.

Formatdetaljer

i et nøtteskall
FULLT NAVNJava Bytecode Class File
UTVIKLERSun Microsystems (now Oracle); part of the Java Platformsiden 1995-1996 (Java 1.0)
MIME-TYPEapplication/java-vm
TYPEKompilert Java-bytecode (binær)
STANDARDÅpen · royalty-fri
MAGIC BYTES · FILSIGNATUR
OFFSET
00010203
HEX
CAFEBABE
ASCII
····
Hver Java-klassefil starter med det 4-byte lange magiske tallet 0xCAFEBABE, etterfulgt av en 2-byte minor- og 2-byte major-versjon (major-versjonen forteller deg hvilken Java-utgivelse som kompilerte den, f.eks. 52 = Java 8, 61 = Java 17). Dette gjør .class-filer svært enkle å identifisere. (Merk: Mach-O fat-binærfiler på macOS bruker også 0xCAFEBABE, men Java-klassefiler skilles ved versjonsordene som følger.)

Programmer som åpner CLASS-filer

Windows4 apps
Eclipse IDE Åpen kildekode Importer klassen i et prosjekt for å kjøre den, eller bruk den medfølgende bytecode/dekompilator-visningen for å inspisere den.
Java (OpenJDK - Eclipse Temurin / Adoptium) Åpen kildekode Installer Temurin JDK, og kjør deretter klassen fra pakkens rot: «java MyClass» (uten .class-etternavn). Krever en main-metode.
JD-GUI (decompiler) Åpen kildekode Åpne .class-filen (eller en JAR) for å se rekonstruert Java-kildekode - den praktiske måten å lese hva en .class-fil gjør.
IntelliJ IDEA (Community) Freemium Åpne/dra en .class-fil - IntelliJ viser en innebygd dekompilert visning og kan kjøre klasser i et prosjekt.
macOS3 apps
Java (OpenJDK - Eclipse Temurin) Åpen kildekode Installer Temurin, og skriv deretter «java MyClass» i terminalen fra riktig mappe.
JD-GUI (decompiler) Åpen kildekode Åpne .class-filen (eller en JAR) for å se rekonstruert Java-kildekode - den praktiske måten å lese hva en .class-fil gjør.
IntelliJ IDEA (Community) Freemium Åpne/dra en .class-fil - IntelliJ viser en innebygd dekompilert visning og kan kjøre klasser i et prosjekt.
Linux2 apps
Java (OpenJDK) Åpen kildekode Installer via pakkebehandler («apt install default-jdk») eller Temurin, og bruk deretter «java MyClass».
JD-GUI / CFR (decompilers) Åpen kildekode CFR er en kommandolinje-dekompilator («java -jar cfr.jar MyClass.class»); JD-GUI er det grafiske alternativet.
Web1 app
javap (bundled with the JDK) Innebygd Ikke web-basert - men JDK-verktøyet «javap -c MyClass» disassembler en .class-fil til lesbar bytecode uten ekstra verktøy.

Tekniske detaljer

dyp spesifikasjon
Format-typeKompilert Java-bytecode (binær)
MIME-typeapplication/java-vm
Magiske bytes0xCAFEBABE (4 bytes ved fil-offset 0) - finnes i enhver gyldig .class-fil
VersjonskodingBytes 6-7 (major version) identifiserer målversjonen av Java; f.eks. 52 = Java 8, 61 = Java 17, 65 = Java 21
KjøretidsmiljøJava Virtual Machine (JVM) via kommandoen `java`
Kompileringsverktøy`javac`-kompilatoren, inkludert i Java Development Kit (JDK)
PlattformuavhengighetBytecode er nøytral overfor CPU-arkitektur og kjører på alle operativsystemer med en kompatibel JVM
Én klasse per filHver toppnivå- eller statisk nøstet klasse kompileres til sin egen separate `.class`-fil
Navngiving av indre klasserIndre og anonyme klasser produserer ekstra filer med `$` i navnet (f.eks. `Outer$Inner.class`)
KonstantpoolHver fil bygger inn en strukturert konstantpool-tabell som inneholder streng-literaler, klassenavn og felt/metode-beskrivelser
InstruksjonssettBruker JVM-bytecode-instruksjonssettet (~200 opkoder), uavhengig av native CPU-instruksjonssett
Bytecode-verifikatorJVM verifiserer `.class`-filens struktur og typesikkerhet før utførelse, og avviser misdannede eller manipulerte filer
DekompileringKan disassembleres med `javap -c` (innebygd i JDK) eller dekompileres tilbake til Java-kildekode med verktøy som JD-GUI eller CFR
PakkingVanligvis distribuert samlet i `.jar`-arkiver (ZIP-baserte beholdere som inneholder flere `.class`-filer og et manifest)
Android-inkompatibilitetAndroid kjører ikke `.class`-filer direkte; verktøyet `d8` konverterer dem til `.dex`-bytecode for Android Runtime (ART)
Utgitt1995-1996 (Java 1.0)
Åpen standardJa · royalty-fri
Spesifikasjondocs.oracle.com

CLASS-konverteringer

Spørsmål og svar fra fellesskapet

spurt av brukere
Still et raskt spørsmål
Få hjelp fra folk som jobber med CLASS-filer. Vær spesifikk - inkluder systemet ditt og programvareversjon.
Ingen konto nødvendig · svar vanligvis innen en dag

Ingen spørsmål ennå - vær den første til å spørre om CLASS-filer.

Ofte stilte spørsmål

Hvordan åpner jeg en CLASS-fil?
Du åpner den ikke som et dokument - det er kompilert Java. For å KJØRE den trenger du Java (JDK) installert, og deretter «java MyClass». For å LESE hva den gjør, åpne den i en dekompilator som JD-GUI, eller disassembler den med JDK-verktøyet «javap -c MyClass».
Hvordan dekompilerer jeg en .class-fil tilbake til Java-kildekode?
Bruk en dekompilator - JD-GUI (dra .class-filen inn), eller kommandolinjeverktøy som CFR/Fernflower/Procyon. Du vil få lesbar Java, men kommentarer og originale variabelnavn er vanligvis borte, og obfuskert kode vil se uoversiktlig ut.
Hvorfor får jeg «UnsupportedClassVersionError»?
Klassen ble kompilert med en nyere Java-versjon enn den du kjører. Installer en JDK som er minst like ny som den som bygde den (klassens hovedversjon: 52=Java 8, 61=Java 17, 65=Java 21), eller rekompiler kildekoden for din versjon.
Trenger jeg Java for å åpne en CLASS-fil?
For å kjøre den, ja - den trenger en JVM. For å lese/dekompilere den kan du bruke verktøy som JD-GUI; visningsverktøyene i IntelliJ/JD-GUI er selv avhengige av Java for å kjøre, så i praksis vil du ha Java installert uansett.
Kan jeg konvertere en CLASS-fil til en EXE?
Ikke direkte - en .class-fil trenger en JVM og er ikke innebygd Windows-kode. Pakk klassene inn i en kjørbar JAR og pakk den inn med jpackage eller Launch4j; resultatet vil fortsatt være avhengig av (eller inkludere) Java.
Hva er forskjellen mellom en .class- og en .jar-fil?
En .class er én kompilert klasse; en JAR er en ZIP-pakke med mange .class-filer pluss et manifest, brukt til å distribuere et helt program eller bibliotek. Ekte applikasjoner distribueres som JAR-filer, ikke som løse .class-filer.

Referanser

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

Utforsk videre

på tvers av databasen

Populære filendelser denne uken

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

Relaterte filendelser

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

Gratis filverktøy

En filidentifikator og bildekonvertering i nettleseren - alt kjører på din enhet.

Åpne verktøykassen

Bla i filendelser A-Å