416 votes

Liste des principaux numéros de version du format de fichier de la classe Java ?

J'ai vu cette liste des numéros de version majeure de Java dans un autre article :

  • Java 1.2 utilise la version majeure 46
  • Java 1.3 utilise la version majeure 47
  • Java 1.4 utilise la version majeure 48
  • Java 5 utilise la version majeure 49
  • Java 6 utilise la version majeure 50
  • Java 7 utilise la version majeure 51
  • Java 8 utilise la version majeure 52
  • Java 9 utilise la version majeure 53
  • Java 10 utilise la version majeure 54
  • Java 11 utilise la version majeure 55
  • Java 12 utilise la version majeure 56
  • Java 13 utilise la version majeure 57
  • Java 14 utilise la version majeure 58
  • Java 15 utilise la version majeure 59
  • Java 16 utilise la version majeure 60
  • Java 17 utilise la version majeure 61
  • Java 18 utilise la version majeure 62
  • Java 19 utilise la version majeure 63

D'où vient cette liste ? Existe-t-il une référence spécifique à ce sujet ? De préférence quelque chose qui indique également les versions mineures ?

102voto

Michael Points 2749

Ceux-ci proviennent de la version de la classe. Si vous essayez de charger quelque chose compilé pour java 6 dans un runtime java 5, vous obtiendrez l'erreur suivante : version de classe incompatible, got 50, expected 49. Ou quelque chose comme ça.

Voir aquí dans le décalage d'octet 7 pour plus d'informations.

Des informations supplémentaires peuvent également être trouvées aquí .

29voto

Source officielle du numéro de version majeure :

Spécification de la machine virtuelle Java, chapitre 4. Le format de fichier de la classe

Les dernières publié sur version de la spécification JVM peut être trouvée aquí .

28voto

Peter Points 111

J'ai trouvé une liste des versions des fichiers de classe Java sur la page Wikipedia qui décrit le format des fichiers de classe :

http://en.wikipedia.org/wiki/Java_class_file#General_layout

Sous les décalages d'octets 6 et 7, les versions sont listées avec la VM Java à laquelle elles correspondent.

9voto

Andy Guibert Points 14403

Si vous avez un fichier de classe à build/com/foo/Hello.class vous pouvez vérifier à quelle version de Java il est compilé en utilisant la commande :

javap -v build/com/foo/Hello.class | grep "major"

Exemple d'utilisation :

$ javap -v build/classes/java/main/org/aguibert/liberty/Book.class | grep major
  major version: 57

Selon le tableau de l'OP, la version majeure 57 signifie que le fichier de classe a été compilé au niveau du bytecode du JDK 13.

3voto

Jefferson1919 Points 101

Si vous rencontrez un problème avec le message "error compiler of class file", il est possible de le résoudre en changeant le JRE du projet pour son correspondant via Eclipse.

  1. Chemin de construction
  2. Configurer le chemin de construction
  3. Changez la bibliothèque pour le correspondant de la table que l'ami montre en dernier.
  4. Créer un "fichier jar", le compiler et l'exécuter.

J'ai fait ça et ça a marché.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X