.CLASS

CLASS-fil

Java Bytecode Class File
Stil et spørgsmål
HURTIGT SVAR

En CLASS-fil er kompileret Java-bytecode - det output, som javac producerer fra en .java-kildefil. For at køre den skal du have Java (et JDK) installeret og derefter bruge kommandoen «java MyClass». For at læse hvad koden gør, skal du åbne den i en decompiler såsom JD-GUI. CLASS-filer er ikke dokumenter; at dobbeltklikke på en i en filbrowser vil ikke åbne den på en brugbar måde.

Udvikler: Sun Microsystems (now Oracle); part of the Java Platform Kategori: Udviklerfiler Åben standard MIME: application/java-vm
ÅBNER PÅ Windows macOS Linux Web
Relateret: .DO · .MD · .HEX · .XSD

På denne side

19k+ filtyper indekseret
Sidst gennemset Jul 31, 2026

Er du ikke sikker på, hvad din fil er?

Træk en fil over i vores identifikator - vi læser kun de første bytes for at navngive formatet.

Identificer en fil

Hvad er CLASS-filformatet?

En .class-fil indeholder kompileret kildekode skrevet i programmeringssproget Java. .class-filer genereres af Java-compileren fra .java-kildefiler, der definerer en eller flere klasser. Hver .class-fil er resultatet af en vellykket kompilering og indeholder bytecode - en binær repræsentation af en klasse, der eksekveres af Java Virtual Machine (JVM).

.class-filer genereres automatisk under kompileringen af .java-kildefiler. Da bytecode er platformsuafhængig, kører den samme .class-fil på ethvert operativsystem, der har en kompatibel JVM installeret. En enkelt .java-kildefil kan indeholde en eller flere klasser, og hver klasse får sin egen .class-fil under kompileringsprocessen.

Kompilering af .java-filer til .class-filer udføres ved hjælp af javac-kommandoen, der er inkluderet i Java Development Kit (JDK). De fleste Java-programmeringsmiljøer - herunder IDE'er som IntelliJ IDEA og Eclipse - kompilerer automatisk .class-filer, mens programmører skriver kode.

Java Runtime Environment (JRE) understøtter eksekvering af .class-filer via java-kommandoen, men tillader ikke kompilering, da JRE ikke inkluderer javac-compileren.

Hver .class-fil begynder med det 4-byte magiske nummer 0xCAFEBABE, efterfulgt af minor- og major-versionsfelter, der identificerer den Java-udgivelse, der blev brugt til at kompilere den. Flere .class-filer pakkes ofte sammen i et JAR-arkiv til distribution og implementering.

Da JVM findes i mange versioner, skal man være opmærksom på, at ikke alle .class-filer er kompatible med alle versioner af runtime-miljøet. En fil, der er kompileret til en nyere Java-hovedversion, kan ikke indlæses af en ældre JVM.

Sikkerhed og tryghed

RISIKO: MEDIUM

En .class-fil er kompileret kode: hvis du kører den («java MyClass») med en JVM, eksekveres den med din brugers tilladelser, så en ukendt klasse - ligesom en ukendt JAR eller EXE - kan indeholde malware. Behandl downloadet kompileret Java som upålideligt: kør kun klasser fra en kilde, du stoler på. Blot at dekompilere eller disassemblere en .class-fil (JD-GUI, javap) eksekverer den ikke og er sikkert. Vær opmærksom på, at bytecode afslører et programs logik, så alt hvad du kompilerer, kan dekompileres af andre, medmindre det er obfuskeret.

Formatdetaljer

kort fortalt
FULDSTÆNDIGT NAVNJava Bytecode Class File
UDVIKLERSun Microsystems (now Oracle); part of the Java Platformsiden 1995-1996 (Java 1.0)
MIME-TYPEapplication/java-vm
TYPEKompileret Java-bytecode (binær)
STANDARDÅben · royaltyfri
MAGIC BYTES · FILSIGNATUR
OFFSET
00010203
HEX
CAFEBABE
ASCII
····
Hver Java-klassefil begynder med det 4-byte magiske nummer 0xCAFEBABE, efterfulgt af en 2-byte minor- og 2-byte major-version (major-versionen fortæller dig, hvilken Java-udgivelse der kompilerede den, f.eks. 52 = Java 8, 61 = Java 17). Dette gør .class-filer lette at identificere. (Bemærk: Mach-O fat-binaries på macOS bruger også 0xCAFEBABE, men Java-klassefiler kendes på de versions-ord, der følger efter.)

Programmer der åbner CLASS-filer

Windows4 apps
Eclipse IDE Open-source Importer klassen i et projekt for at køre den, eller brug den medfølgende bytecode/decompiler-visning til at inspicere den.
Java (OpenJDK - Eclipse Temurin / Adoptium) Open-source Installer Temurin JDK, og kør derefter klassen fra dens pakkerod: «java MyClass» (uden .class-filendelse). Kræver en main-metode.
JD-GUI (decompiler) Open-source Åbn .class-filen (eller en JAR) for at se rekonstrueret Java-kildekode - den praktiske måde at læse, hvad en .class-fil gør.
IntelliJ IDEA (Community) Freemium Åbn/træk en .class-fil - IntelliJ viser en indbygget decompiler-visning og kan køre klasser i et projekt.
macOS3 apps
Java (OpenJDK - Eclipse Temurin) Open-source Installer Temurin, og skriv derefter «java MyClass» i terminalen fra den korrekte mappe.
JD-GUI (decompiler) Open-source Åbn .class-filen (eller en JAR) for at se rekonstrueret Java-kildekode - den praktiske måde at læse, hvad en .class-fil gør.
IntelliJ IDEA (Community) Freemium Åbn/træk en .class-fil - IntelliJ viser en indbygget decompiler-visning og kan køre klasser i et projekt.
Linux2 apps
Java (OpenJDK) Open-source Installer via pakkehåndtering («apt install default-jdk») eller Temurin, og kør derefter «java MyClass».
JD-GUI / CFR (decompilers) Open-source CFR er en kommandolinje-decompiler («java -jar cfr.jar MyClass.class»); JD-GUI er den grafiske mulighed.
Web1 app
javap (bundled with the JDK) Indbygget Ikke web - men JDK's «javap -c MyClass» disassemblerer en .class-fil til læsbar bytecode uden ekstra værktøjer.

Tekniske detaljer

dyb specifikation
Format-typeKompileret Java-bytecode (binær)
MIME-typeapplication/java-vm
Magic bytes0xCAFEBABE (4 bytes ved fil-offset 0) - findes i enhver gyldig .class-fil
VersionskodningBytes 6-7 (major version) identificerer mål-Java-udgivelsen; f.eks. 52 = Java 8, 61 = Java 17, 65 = Java 21
EksekveringsmiljøJava Virtual Machine (JVM) via `java`-kommandoen
Kompileringsværktøj`javac`-compiler, inkluderet i Java Development Kit (JDK)
PlatformsuafhængighedBytecode er CPU-arkitektur-neutral og kører på ethvert OS med en kompatibel JVM
Én klasse pr. filHver top-level eller statisk indlejret klasse kompileres til sin egen separate `.class`-fil
Navngivning af indre klasserIndre og anonyme klasser producerer yderligere filer med `$` i navnet (f.eks. `Outer$Inner.class`)
Constant poolHver fil indlejrer en struktureret constant pool-tabel, der indeholder streng-literaler, klassenavne og felt/metode-beskrivelser
InstruktionssætBruger JVM-bytecode-instruktionssættet (~200 opkoder), uafhængigt af ethvert indfødt CPU-instruktionssæt
Bytecode-verifikatorJVM verificerer `.class`-filens struktur og typesikkerhed før eksekvering og afviser fejlbehæftede eller manipulerede filer
DekompileringKan disassembleres med `javap -c` (indbygget i JDK) eller dekompileres tilbage til Java-kildekode med værktøjer som JD-GUI eller CFR
EmballeringDistribueres typisk bundtet i `.jar`-arkiver (ZIP-baserede containere, der indeholder flere `.class`-filer og et manifest)
Android-inkompatibilitetAndroid eksekverer ikke `.class`-filer direkte; `d8`-værktøjet konverterer dem til `.dex`-bytecode til Android Runtime (ART)
Udgivet1995-1996 (Java 1.0)
Åben standardJa · royaltyfri
Specifikationdocs.oracle.com

CLASS-konverteringer

Fællesskabets Q&A

spurgt af brugere
Stil et hurtigt spørgsmål
Få hjælp fra folk, der arbejder med CLASS-filer. Vær specifik - medtag dit system og din softwareversion.
Ingen konto nødvendig · svar normalt inden for en dag

Ingen spørgsmål endnu - vær den første til at spørge om CLASS-filer.

Ofte stillede spørgsmål

Hvordan åbner jeg en CLASS-fil?
Du åbner den ikke som et dokument - det er kompileret Java. For at KØRE den skal du have Java (JDK) installeret og derefter bruge «java MyClass». For at LÆSE hvad den gør, skal du åbne den i en decompiler såsom JD-GUI, eller disassemblere den med JDK's «javap -c MyClass».
Hvordan decompiler jeg en .class-fil tilbage til Java-kildekode?
Brug en decompiler - JD-GUI (træk .class-filen ind), eller kommandolinje-værktøjer som CFR/Fernflower/Procyon. Du får læsbar Java, men kommentarer og originale variabelnavne er normalt væk, og obfuskerede klasser bliver uoverskuelige.
Hvorfor får jeg «UnsupportedClassVersionError»?
Klassen blev kompileret med en nyere Java-version end den, du kører. Installer et JDK, der er mindst lige så nyt som det, der byggede den (klassens major-version: 52=Java 8, 61=Java 17, 65=Java 21), eller rekompiler kildekoden til din version.
Skal jeg bruge Java for at åbne en CLASS-fil?
For at køre den, ja - den kræver en JVM. For at læse/decompilere den kan du bruge værktøjer som JD-GUI; IntelliJ/JD-GUI-visere er dog stadig afhængige af Java for selv at køre, så i praksis vil du have Java installeret uanset hvad.
Kan jeg konvertere en CLASS-fil til en EXE?
Ikke direkte - en .class-fil kræver en JVM og er ikke indfødt Windows-kode. Pak klasserne i en kørbar JAR og pak den ind med jpackage eller Launch4j; resultatet afhænger stadig af (eller inkluderer) Java.
Hvad er forskellen på en .class- og en .jar-fil?
En .class er én kompileret klasse; en JAR er et ZIP-bundt af mange .class-filer plus et manifest, der bruges til at sende et helt program eller bibliotek. Rigtige applikationer distribueres som JAR-filer, ikke som løse .class-filer.

Referencer

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

Udforsk mere

på tværs af databasen

Populære filtyper i denne uge

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

Relaterede filtyper

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

Gratis filværktøjer

En fil-identifikator og billedkonverter direkte i browseren - alt kører på din enhed.

Åbn værktøjskassen

Gennemse filtyper A-Å