Java Class — fichier .class
pérenneFichier de bytecode Java compilé, exécuté par la machine virtuelle Java (JVM).
Un fichier .class contient le bytecode d’une seule classe Java, produit par le compilateur javac à partir du code source .java, et interprété (ou compilé à la volée) par la machine virtuelle Java lors de l’exécution — l’un des piliers du fameux “écrit une fois, exécuté partout” de la plateforme Java.
Sa signature numérique 0xCAFEBABE, l’une des plus connues du monde du développement, précède immédiatement les numéros de version mineure et majeure du format de bytecode. Par une coïncidence amusante, cette même valeur sert aussi de signature aux anciens binaires universels (“fat binaires”) macOS — deux formats totalement différents qui partagent, sans lien de conception, le même nombre magique.
Le numéro de version du bytecode qui suit la signature détermine la version minimale de la JVM capable d’exécuter la classe : une classe compilée avec un JDK récent en ciblant une version de bytecode plus ancienne (option --release du compilateur) reste exécutable sur une JVM plus ancienne, une garantie de compatibilité descendante explicitement prise en charge par le format.
D’autres langages de la JVM (Kotlin, Scala, Groovy) compilent eux aussi vers ce même format de bytecode Java, ce qui leur permet d’interopérer nativement avec du code Java existant et de s’exécuter sur la même machine virtuelle sans traduction supplémentaire.
Le processus de construction d’une application Android illustre bien le rôle purement intermédiaire du .class : le code Java ou Kotlin d’un projet est d’abord compilé en fichiers .class classiques, avant que l’outil d8/r8 ne les retraduise en un unique fichier classes.dex au format bytecode Dalvik, seul véritablement embarqué dans l’APK final — les .class d’origine ne survivent pas au-delà de cette étape de compilation.
Signature binaire
| Hexadécimal | Offset |
|---|---|
CA FE BA BE | 0 |
Vérifier qu'un fichier porte bien cette signature →
Sécurité
Exécute du bytecode arbitraire dans la machine virtuelle Java, avec les mêmes précautions qu'un exécutable natif.
Auditer les métadonnées de ce format →
Questions fréquentes
Comment ouvrir un fichier .class ?
Java Runtime Environment permet d'ouvrir gratuitement un fichier .class. Voir la liste complète des logiciels compatibles ci-contre.
Quel est le type MIME du format Java Class ?
Le type MIME du format Java Class est application/java-vm.
Le format Java Class (.class) est-il encore utilisé aujourd'hui ?
Oui, le format Java Class est pérenne : il reste activement utilisé et pris en charge par les logiciels actuels.
Peut-on ouvrir un fichier .class sur mobile, sans installer d'application ?
Aucun outil web n'est référencé sur cette fiche pour ce format : l'ouverture nécessite un logiciel de bureau (voir la liste « Avec quoi l'ouvrir » ci-contre).
Pourquoi mon fichier .class ne s'ouvre-t-il pas ?
Les causes les plus fréquentes sont l'absence de logiciel compatible installé, un téléchargement ou un transfert incomplet, ou une extension qui ne correspond plus au contenu réel du fichier. Voir le guide complet sur les causes possibles, ou vérifier le format réel avec l'identifieur de fichier.
Un fichier .class présente-t-il des risques de sécurité ?
Exécute du bytecode arbitraire dans la machine virtuelle Java, avec les mêmes précautions qu'un exécutable natif.
Un fichier ne s'ouvre pas : les causes possibles →
Comment savoir si un fichier est corrompu →
Sources
Dernière mise à jour :