BT

Nouveau Early adopter ou innovator ? InfoQ a travaillé sur de nouvelles fonctionnalités pour vous. En savoir plus

Java 9 sur le point d'arrêter le support de compilation des versions 1.5 et antérieures

| par Alex Blewitt Suivre 2 Abonnés , traduit par Chris Woodrow Suivre 0 Abonnés le 05 août 2013. Durée de lecture estimée: 2 minutes |

Une récente Java Enhancement Proposal (JPE, proposition d'amélioration du JDK), qui cible à la fois les versions 8 et 9 de java, tend à réguler le support des options -target et -source du compilateur Java. La proposition part du principe qu'un compilateur doit supporter au plus 3 versions antérieures à la version du compilateur lui-même.

L'option -target indique au compilateur de générer les classes Java dans une version spécifique de Java. Bien que généralement spécifié comme une version de Java telle que 1.5 ou 1.6, cette option se traduit par une version cible du bytecode généré:

  • 48: Java 4
  • 49: Java 5
  • 50: Java 6
  • 51: Java 7
  • 52: Java 8 (à paraître)
  • 53: Java 9 (à paraître)

L'option -source permet au compilateur de remonter ou de traiter comme des erreurs les nouveaux concepts du langage, tels que les expressions lambda, try-with-resources, strings-in-switch, etc... Certaines des nouvelles fonctionnalités du langage (comme les expressions lambda) s'appuient sur des caractéristiques spécifiques du bytecode (comme invokedynamic). Il en résulte qu'il est rarement possible d'utiliser du code s'appuyant sur une version plus récente que la version ciblée.

La JEP 182 propose qu'au plus 3 versions -target et -source soient supportées par les prochaines versions du compilateur. Cette limitation implique la fin de Java 6 cette année, la limitation de supporter Java 6 n'incombant qu'au compilateur Java 8 (de même pour Java 7 avec le compilateur Java 9). Cette restriction ne devrait pas affecter qui que ce soit de manière significative. Néanmoins, certains outils de build (tels que Maven), fixent la version de Java à 1.5 si celle-ci n'est pas spécifiée de manière explicite, ce qui pourrait entraîner la nécessité d'une mise à jour pour permettre au programme d'être exécuté sous Java 8.

Le changement est en marche, la jsr14 et la cible 1.4 ne sont plus acceptés par Java 8, l'utilisation de Java 1.5 lèvera des warnings. Java 9 supprimera le support de la version 1.5 et lèvera des warnings pour la version 1.6.

D'un point de vue pratique, tout ceci n'a pas l'air d'un grand changement, mais jusqu'à il n'y a pas longtemps, les contextes OSGi étaient compilés avec les options -source 1.5 -target jsr14 afin de compiler du code contenant des génériques tout en générant du bytecode compatible avec J2ME. L'utilisation de jsr14 a été supprimée l'année dernière de la code base d'Eclipse. Sachant qu'Android a largement pris le dessus sur J2ME (et dans tous les cas, des runtimes OSGI comme Felix et Equinox demeurent disponibles au cas où le besoin commercial existerai), le fait qu'ils soient compilés à l'aide d'une version plus récente ne devrait pas poser de problème à la majorité des développeurs Java.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT