.CLASS

File CLASS

Java Bytecode Class File
Fai una domanda
RISPOSTA RAPIDA

Un file CLASS è bytecode Java compilato - l'output prodotto da javac a partire da un file sorgente .java. Per eseguirlo è necessario avere Java (un JDK) installato, quindi usare il comando «java MyClass». Per leggere cosa fa il codice, aprirlo in un decompilatore come JD-GUI. I file CLASS non sono documenti; fare doppio clic su uno di essi in un gestore di file non produrrà alcun risultato utile.

Sviluppatore: Sun Microsystems (now Oracle); part of the Java Platform Categoria: File di sviluppo Standard aperto MIME: application/java-vm
SI APRE SU Windows macOS Linux Web
Correlati: .DO · .MD · .HEX · .XSD

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Jul 31, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file CLASS?

Un file .class contiene codice sorgente compilato scritto nel linguaggio di programmazione Java. I file .class sono generati dal compilatore Java a partire da file sorgente .java che definiscono una o più classi. Ogni file .class è il risultato di una compilazione riuscita e contiene bytecode - una rappresentazione binaria di una classe che viene eseguita dalla Java Virtual Machine (JVM).

I file .class vengono generati automaticamente durante la compilazione dei file sorgente .java. Poiché il bytecode è indipendente dalla piattaforma, lo stesso file .class può essere eseguito su qualsiasi sistema operativo che abbia una JVM compatibile installata. Un singolo file sorgente .java può contenere una o più classi, e ogni classe riceve il proprio file .class durante il processo di compilazione.

La compilazione dei file .java in file .class viene eseguita utilizzando il comando javac incluso nel Java Development Kit (JDK). La maggior parte degli ambienti di programmazione Java - inclusi gli IDE come IntelliJ IDEA ed Eclipse - compila i file .class automaticamente mentre i programmatori scrivono il codice.

Il Java Runtime Environment (JRE) supporta l'esecuzione dei file .class tramite il comando java, ma non ne consente la compilazione poiché il JRE non include il compilatore javac.

Ogni file .class inizia con il magic number di 4 byte 0xCAFEBABE, seguito dai campi della versione minor e major che identificano la release di Java utilizzata per compilarlo. Più file .class vengono comunemente raggruppati in un archivio JAR per la distribuzione e l'implementazione.

Poiché la JVM è disponibile in molte versioni, bisogna tenere presente che non tutti i file .class sono compatibili con tutte le versioni del runtime. Un file compilato puntando a una versione major di Java più recente non può essere caricato da una JVM più vecchia.

Sicurezza e incolumità

RISCHIO: MEDIUM

Un file .class è codice compilato: se lo esegui («java MyClass») con una JVM, viene eseguito con i permessi del tuo utente, quindi una classe sconosciuta - come un JAR o un EXE sconosciuto - può contenere malware. Tratta il codice Java compilato scaricato come non attendibile: esegui solo classi provenienti da fonti sicure. La semplice decompilazione o il disassemblaggio di un file .class (JD-GUI, javap) non lo esegue ed è un'operazione sicura. Tieni presente che il bytecode rivela la logica di un programma, quindi tutto ciò che compili può essere decompilato da altri a meno che non sia offuscato.

Dettagli del formato

in sintesi
NOME COMPLETOJava Bytecode Class File
SVILUPPATORESun Microsystems (now Oracle); part of the Java Platformdal 1995-1996 (Java 1.0)
TIPO MIMEapplication/java-vm
TIPOBytecode Java compilato (binario)
STANDARDAperto · royalty-free
MAGIC BYTES · FIRMA DEL FILE
OFFSET
00010203
HEX
CAFEBABE
ASCII
····
Ogni file di classe Java inizia con il magic number di 4 byte 0xCAFEBABE, seguito da una versione minor di 2 byte e una major di 2 byte (la versione major indica quale release di Java lo ha compilato, es. 52 = Java 8, 61 = Java 17). Questo rende i file .class facilmente identificabili. (Nota: anche i binari fat Mach-O su macOS usano 0xCAFEBABE, ma i file di classe Java si distinguono per le parole di versione che seguono.)

Programmi che aprono file CLASS

Windows4 apps
Eclipse IDE Open-source Importa la classe in un progetto per eseguirla, oppure usa la vista bytecode/decompilatore inclusa per ispezionarla.
Java (OpenJDK - Eclipse Temurin / Adoptium) Open-source Installa Temurin JDK, quindi esegui la classe dalla root del pacchetto: «java MyClass» (senza estensione .class). Richiede un metodo main.
JD-GUI (decompiler) Open-source Apri il file .class (o un JAR) per visualizzare il sorgente Java ricostruito - il modo pratico per leggere cosa fa un file .class.
IntelliJ IDEA (Community) Freemium Apri o trascina un file .class - IntelliJ mostra una vista decompilata integrata e può eseguire le classi in un progetto.
macOS3 apps
Java (OpenJDK - Eclipse Temurin) Open-source Installa Temurin, quindi digita «java MyClass» nel terminale dalla directory corretta.
JD-GUI (decompiler) Open-source Apri il file .class (o un JAR) per visualizzare il sorgente Java ricostruito - il modo pratico per leggere cosa fa un file .class.
IntelliJ IDEA (Community) Freemium Apri o trascina un file .class - IntelliJ mostra una vista decompilata integrata e può eseguire le classi in un progetto.
Linux2 apps
Java (OpenJDK) Open-source Installa tramite gestore pacchetti («apt install default-jdk») o Temurin, quindi usa «java MyClass».
JD-GUI / CFR (decompilers) Open-source CFR è un decompilatore da riga di comando («java -jar cfr.jar MyClass.class»); JD-GUI è l'opzione con interfaccia grafica.
Web1 app
javap (bundled with the JDK) Integrato Non è un'app web - ma il comando del JDK «javap -c MyClass» disassembla un file .class in bytecode leggibile senza strumenti extra.

Dettagli tecnici

specifiche approfondite
Tipo di formatoBytecode Java compilato (binario)
Tipo MIMEapplication/java-vm
Magic bytes0xCAFEBABE (4 byte all'offset 0) - presente in ogni file .class valido
Codifica versioneI byte 6-7 (versione major) identificano la release di Java di destinazione; es. 52 = Java 8, 61 = Java 17, 65 = Java 21
Ambiente di esecuzioneJava Virtual Machine (JVM) tramite il comando `java`
Strumento di compilazioneCompilatore `javac`, incluso nel Java Development Kit (JDK)
Indipendenza dalla piattaformaIl bytecode è neutrale rispetto all'architettura della CPU e gira su qualsiasi OS con una JVM compatibile
Una classe per fileOgni classe di primo livello o classe statica nidificata viene compilata nel proprio file `.class` separato
Nomenclatura classi interneLe classi interne e anonime producono file aggiuntivi con il simbolo `$` nel nome (es. `Outer$Inner.class`)
Constant poolOgni file incorpora una tabella strutturata chiamata constant pool che contiene stringhe letterali, nomi di classi e descrittori di campi/metodi
Set di istruzioniUtilizza il set di istruzioni bytecode della JVM (~200 opcode), indipendente da qualsiasi set di istruzioni CPU nativo
Verificatore bytecodeLa JVM verifica la struttura del file `.class` e la sicurezza dei tipi prima dell'esecuzione, rifiutando file malformati o manomessi
DecompilazionePuò essere disassemblato con `javap -c` (integrato nel JDK) o decompilato in sorgente Java con strumenti come JD-GUI o CFR
PackagingTipicamente distribuito raggruppato all'interno di archivi `.jar` (contenitori basati su ZIP che ospitano più file `.class` e un manifesto)
Incompatibilità AndroidAndroid non esegue direttamente i file `.class`; lo strumento `d8` li converte in bytecode `.dex` per l'Android Runtime (ART)
Rilasciato1995-1996 (Java 1.0)
Standard aperto · royalty-free
Specificadocs.oracle.com

Conversioni CLASS

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file CLASS. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file CLASS.

Domande frequenti

Come apro un file CLASS?
Non si apre come un documento - è Java compilato. Per ESEGUIRLO è necessario il JDK installato, quindi digitare «java MyClass». Per LEGGERE cosa fa, aprirlo in un decompilatore come JD-GUI, oppure disassemblarlo con lo strumento del JDK «javap -c MyClass».
Come posso decompilare un file .class in sorgente Java?
Usa un decompilatore - JD-GUI (trascina il file .class all'interno), oppure CFR/Fernflower/Procyon da riga di comando. Otterrai codice Java leggibile, ma i commenti e i nomi originali delle variabili solitamente vanno persi, e le classi offuscate risulteranno confuse.
Perché ricevo l'errore «UnsupportedClassVersionError»?
La classe è stata compilata con una versione di Java più recente di quella in esecuzione. Installa un JDK almeno altrettanto recente di quello che l'ha creata (la versione major della classe: 52=Java 8, 61=Java 17, 65=Java 21), oppure ricompila il sorgente per la tua versione.
Ho bisogno di Java per aprire un file CLASS?
Per eseguirlo, sì - richiede una JVM. Per leggerlo/decompilarlo, puoi usare strumenti come JD-GUI; tuttavia, i visualizzatori di IntelliJ/JD-GUI si basano comunque su Java per funzionare, quindi in pratica avrai Java installato in ogni caso.
Posso convertire un file CLASS in un EXE?
Non direttamente - un file .class richiede una JVM e non è codice nativo per Windows. Impacchetta le classi in un JAR eseguibile e usa jpackage o Launch4j; il risultato dipenderà comunque da (o includerà) Java.
Qual è la differenza tra un file .class e un file .jar?
Un file .class è una singola classe compilata; un JAR è un pacchetto ZIP di molti file .class più un manifesto, usato per distribuire un intero programma o una libreria. Le applicazioni reali sono distribuite come JAR, non come file .class sciolti.

Riferimenti

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

Continua a esplorare

nel database

Migliori estensioni della settimana

1.AQQAQQ Instant Messenger File
2.MDMarkdown Document
3.CRDOWNLOADChrome Partial Download File
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

Estensioni correlate

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

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z