Article de reference

Historique des versions de Java

Le langage Java a connu plusieurs évolutions depuis JDK 1.0, ainsi que de nombreux ajouts de classes et de packages à la bibliothèque standard . Depuis J2SE 1.4, son évolution e...

langage Java a connu plusieurs évolutions depuis JDK 1.0, ainsi que de nombreux ajouts de classes et de packages à la bibliothèque standard . Depuis J2SE 1.4, son évolution est régie par le Java Community Process (JCP), qui utilise les Java Specification Requests (JSR) pour proposer et spécifier les ajouts et modifications apportés à la plateforme Java . Le langage est défini par la Java Language Specification (JLS) ; les modifications apportées à la JLS sont gérées par la JSR 901. En septembre 2017, Mark Reinhold, architecte en chef de la plateforme Java, a proposé de modifier le rythme de publication pour adopter « une version majeure tous les six mois » au lieu du cycle biennal alors en vigueur. Cette proposition a été appliquée à toutes les versions suivantes et constitue toujours le rythme de publication actuel.

Outre les modifications apportées au langage, la bibliothèque de classes Java a subi d'autres transformations au fil des ans, passant de quelques centaines de classes dans JDK 1.0 à plus de trois mille dans J2SE 5. De nouvelles API , telles que Swing et Java2D , ont été introduites, et de nombreuses classes et méthodes de JDK 1.0 ont été dépréciées . Seules quelques API ont été supprimées (au moins une, pour la gestion des threads, dans Java 22 ). Certains programmes permettent la conversion de programmes Java d'une version de la plateforme Java vers une version antérieure (par exemple, la rétroportation de Java 5.0 vers la version 1.4) (voir Outils de rétroportage Java ).

Concernant la feuille de route du support Java SE d'Oracle , Java SE 25 ( LTS ) est la dernière version en date de septembre 2025 (et Java 26 une version ultérieure), tandis que les versions 21, 17, 11 et 8 sont les autres versions encore prises en charge ( support à long terme – LTS), pour lesquelles les clients Oracle bénéficient du support Oracle Premier. Oracle continue de publier gratuitement des mises à jour publiques de Java 8 pour le développement et l'utilisation personnelle, et ce, indéfiniment.

Dans le cas d’ OpenJDK , un support commercial à long terme et des mises à jour logicielles gratuites sont disponibles auprès de plusieurs organisations de la communauté au sens large .

Java 26 a été publié le 17 mars 2026 et Java 25 LTS a été publié le 16 septembre 2025.

AWT )
  • prise en charge de la création d'une applet Java
  • bibliothèques pour les E/S et la mise en réseau
  • JDK 1.1

    Abstract Window Toolkit (AWT)
  • des classes internes ajoutées à la langue
  • JavaBeans
  • Connectivité aux bases de données Java (JDBC) et prise en charge de SQL
  • Invocation de méthode à distance (RMI) et sérialisation en Java
  • La réflexion ne prenait en charge que l'introspection ; aucune modification à l'exécution n'était possible. (La possibilité de modifier les objets par réflexion a été ajoutée dans J2SE 1.2, grâce à l'introduction de la classe et de ses sous-classes, comme la classe Compilation à la volée (JIT) sur les plateformes Microsoft Windows , produite pour JavaSoft par Symantec
  • Prise en charge de l'internationalisation et d'Unicode provenant de Taligent
  • Java 2 Platform, Standard Edition ) a remplacé JDK afin de distinguer la plateforme de base de J2EE ( Java 2 Platform, Enterprise Edition ) et J2ME ( Java 2 Platform, Micro Edition ). Cette version a marqué un tournant majeur pour Java, triplant la taille de la plateforme à 1 520 classes réparties dans 59 packages. Parmi les ajouts majeurs :

    JVM HotSpot incluse (la JVM HotSpot a été initialement publiée en avril 1999 pour la JVM J2SE 1.2)
  • RMI a été modifié pour prendre en charge la compatibilité optionnelle avec CORBA .
  • L'interface JNDI (Java Naming and Directory Interface ) est incluse dans les bibliothèques principales (auparavant disponible en tant qu'extension).
  • Architecture de débogage de la plateforme Java (JPDA)
  • JavaSound
  • classes de proxy synthétiques
  • Java 1.3 est la dernière version de Java à prendre officiellement en charge Microsoft Windows 95.

    assertmot-clé (spécifié dans JSR 41 )
  • Améliorations de la bibliothèque
    • Expressions régulières inspirées des expressions régulières Perl
    • Le chaînage d'exceptions permet à une exception d'encapsuler une exception de niveau inférieur d'origine.
    • Prise en charge du protocole Internet version 6 ( IPv6 )
    • E/S non bloquantes (nommées NIO) (spécifiées dans JSR 51 )
    • API de journalisation (spécifiée dans JSR 47 )
    • API d'entrée/sortie d'images pour la lecture et l'écriture d'images aux formats JPEG et PNG.
    • Analyseur XML intégré et processeur XSLT ( JAXP ) (spécifié dans JSR 5 et JSR 63 )
    • Extensions intégrées de sécurité et de cryptographie ( JCE , JSSE , JAAS )
    • Java Web Start inclus (Java Web Start a été publié pour la première fois en mars 2001 pour J2SE 1.3) (spécifié dans JSR 56 )
    • API des préférences ( java.util.prefs)
  • Le support public et les mises à jour de sécurité pour Java 1.4 ont pris fin en octobre 2008. Les mises à jour de sécurité payantes pour les clients Oracle ont pris fin en février 2013.

    Génériques : assure une sécurité de type statique à la compilation pour les collections et élimine le besoin de la plupart des conversions de type (spécifié par JSR 14 ).

  • Métadonnées : également appelées annotations ; permettent d'étiqueter les constructions du langage telles que les classes et les méthodes avec des données supplémentaires, qui peuvent ensuite être traitées par des utilitaires prenant en charge les métadonnées (spécifiés par JSR 175 ).
  • Autoboxing /unboxing : conversions automatiques entre les types primitifs (tels que int) et les classes wrapper primitives (telles que Énumérations : le enummot-clé crée une liste ordonnée et typée de valeurs (telles que Day.MONDAY`int`, Day.TUESDAY`int`, `int`, etc.) ; auparavant, cela ne pouvait être réalisé qu’avec des entiers constants non typés ou des classes construites manuellement (modèle d’énumération typé) (spécifié par JSR 201 ).
  • Arguments variables : le dernier paramètre d’une méthode peut désormais être déclaré à l’aide d’un nom de type suivi de trois points (par exemplevoid drawtext(String... lines) ;). Dans le code appelant, un nombre quelconque de paramètres de ce type peut être utilisé ; ils sont alors placés dans un tableau à passer à la méthode, ou bien le code appelant peut passer un tableau de ce type.
  • Boucle amélioréefor each : la forsyntaxe de boucle est étendue avec une syntaxe spéciale permettant d’itérer sur chaque membre d’un tableau ou de n’importe quelle classe modèle de mémoire Java aborde les problèmes de complexité, d'efficacité et de performance des spécifications précédentes
  • Importations statiques
  • Les bibliothèques standard ont également bénéficié des améliorations suivantes :

    • Génération automatique de stubs pour les objets RMI
    • Swing : Nouvelle interface personnalisable , appelée synthétiseur
    • Les utilitaires de concurrence dans le paquet java.util.concurrent
    • Classe Scanner pour l'analyse des données provenant de divers flux d'entrée et tampons

    Java 5 est la dernière version de Java à prendre officiellement en charge Microsoft Windows 98 et Windows ME , tandis que Windows Vista était la version la plus récente de Windows sur laquelle Java SE 5 était pris en charge avant la fin de vie de Java 5 en octobre 2009.

    Java 5 Update 5 (1.5.0_05) est la dernière version de Java à fonctionner sur Windows 95 (avec Internet Explorer 5.5 installé) et Windows NT 4.0 .

    Java 5 a été disponible pour la première fois sur Apple Mac OS X 10.4 (Tiger) et était la version par défaut de Java installée sur Apple Mac OS X 10.5 (Leopard).

    Le support public et les mises à jour de sécurité pour Java 1.5 ont pris fin en novembre 2009. Les mises à jour de sécurité payantes pour les clients Oracle ont pris fin en avril 2015.

    Changement de version

    Cette version a introduit un nouveau système de versionnage pour le langage Java, bien que l'ancien système de versionnage ait continué d'être utilisé pour les bibliothèques de développement :

    Les deux numéros de version « 1.5.0 » et « 5.0 » sont utilisés pour identifier cette version de Java 2 Platform Standard Edition. La version « 5.0 » est la version produit, tandis que la version « 1.5.0 » est la version développeur. Le numéro « 5.0 » reflète mieux le niveau de maturité, de stabilité, d'évolutivité et de sécurité de J2SE.

    — « Version 1.5.0 ou 5.0 ? », Notes de version de Java

    Cette correspondance s'est poursuivie lors des versions ultérieures (Java 6 = JDK 1.6, Java 7 = JDK 1.7, etc.).

    Prise en charge des langages de script ( JSR 223 ) : API générique pour une intégration étroite avec les langages de script et intégration intégrée de Mozilla JavaScript Rhino .

  • Améliorations spectaculaires des performances de la plateforme principale, et de Swing .
  • Amélioration de la prise en charge des services Web via JAX-WS ( JSR 224 ).
  • Prise en charge de JDBC 4.0 ( JSR 221 ).
  • API du compilateur Java ( JSR 199 ) : une API permettant à un programme Java de sélectionner et d'invoquer un compilateur Java par programmation.
  • Mise à niveau de JAXB vers la version 2.0 : incluant l’intégration d’un analyseur StAX .
  • Prise en charge des annotations enfichables ( JSR 269 ).
  • De nombreuses améliorations de l'interface graphique , telles que l'intégration de SwingWorker dans l'API, le tri et le filtrage des tableaux, et un véritable double tampon Swing (éliminant l'effet de zone grise).
  • Les améliorations apportées à la JVM comprennent : des optimisations de la synchronisation et des performances du compilateur , de nouveaux algorithmes et des mises à niveau des algorithmes de récupération de mémoire existants , ainsi que des performances de démarrage des applications.
  • Java 6 peut être installé sur Mac OS X 10.5 (Leopard) fonctionnant sur des machines équipées d'un processeur 64 bits (Core 2 Duo et supérieur). Java 6 est également compatible avec les machines 32 bits et 64 bits exécutant Mac OS X 10.6 (Snow Leopard).

    Le support de Java 6 a pris fin en février 2013, date à laquelle toutes les mises à jour publiques, y compris les correctifs de sécurité, ont été arrêtées. Oracle a publié deux mises à jour supplémentaires pour Java 6 en mars et avril 2013, corrigeant certaines failles de sécurité.

    Mises à jour Java 6

    Après la sortie de Java 6, Sun, puis Oracle, ont publié plusieurs mises à jour qui, sans modifier aucune API publique, ont amélioré l'utilisabilité pour l'utilisateur final ou corrigé des bogues.

    Tableau des mises à jour de Java 6
    Libérerdate de sortiePoints forts
    Java SE 623/12/2006Cette version apporte de nombreuses améliorations aux services Web, aux scripts, aux bases de données, aux annotations extensibles et à la sécurité, ainsi qu'à la qualité, la compatibilité et la stabilité. JConsole est désormais officiellement pris en charge. La prise en charge de Java DB a été ajoutée.
    Java SE 6 Mise à jour 1HotSpot VM 10
    Java SE 6 Mise à jour 5JavaScript pour faciliter le déploiement d' applets et d'applications Java Web Start .
  • Le noyau Java est un petit programme d'installation contenant uniquement les classes JRE les plus couramment utilisées. Les autres paquets sont téléchargés au besoin.
  • Mise à jour améliorée.
  • Gestion des versions améliorée et prise en charge de pack200 : la prise en charge côté serveur n’est plus nécessaire.
  • Java Quick Starter, pour améliorer le temps de démarrage à froid.
  • Amélioration des performances des primitives graphiques Java2D sous Windows, grâce à l'utilisation de Direct3D et de l'accélération matérielle.
  • Un nouveau style Swing appelé Nimbus et basé sur le synthétiseur .
  • Module d'extension Java de nouvelle génération : les applets s'exécutent désormais dans un processus distinct et prennent en charge de nombreuses fonctionnalités des applications Web Start.
  • Java SE 6 Mise à jour 11 Windows Server 2008 ; améliorations des performances des applications graphiques et JavaFX
    Java SE 6 Mise à jour 13-miettes Garbage-First (G1) à faible temps d'attente .

    Cette option indique au compilateur JIT-XX:+DoEscapeAnalysis HotSpot d'utiliser l'analyse d'échappement pour déterminer si les objets locaux peuvent être alloués sur la pile plutôt que sur le tas .Ubuntu 8.04 LTS Desktop Edition, SLES 11, Windows 7 , Red Hat Enterprise Linux 5.3, Firefox 3.6 et VisualVM 1.2 ; Java DB mis à jour ; nombreuses améliorations de performances

    Java SE 6 Mise à jour 19Red Hat Enterprise Linux 5.4 et 5.5, Oracle Enterprise Linux 4.8, 5.4 et 5.5 ; prise en charge de Google Chrome 4 ; prise en charge des indicateurs de progression de chargement personnalisés ; VisualVM 1.2.2
    Java SE 6 Mise à jour 22la RFC 5746
    Java SE 6 Mise à jour 23Internet Explorer 9 , Firefox 4 et Chrome 10 ; BigDecimal amélioré ; inclut une compilation « hiérarchisée » dans la VM serveur, ce qui lui permet de démarrer aussi rapidement que la VM cliente, tout en atteignant de meilleures performances maximales (cette fonctionnalité est activée en spécifiant -serverdes -XX:+TieredCompilationoptions de commande).
    Java SE 6 Mise à jour 26Red Hat Enterprise Linux 6
    Java SE 6 Mise à jour 31Windows 2000
    Java SE 6 Update 32Solaris 10 n° 54 ; 25 correctifs de sécurité
    Java SE 6 Mise à jour 8115 juillet 2014Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 11 correctifs de sécurité
    Java SE 6 Mise à jour 8516 octobre 2014Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 18 correctifs de sécurité
    Java SE 6 Mise à jour 9121/01/2015Les versions Linux x64 et Windows i586 sont disponibles en tant qu'implémentation de référence Java SE 6. Les autres versions sont uniquement disponibles via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 15 correctifs de sécurité
    Java SE 6 Mise à jour 9514 avril 2015Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 14 correctifs de sécurité
    Java SE 6 Mise à jour 10115/07/2015Non disponible publiquement, uniquement disponible via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 18 correctifs de sécurité La certification pour IE 10 et 11 a été introduite dans la version 1.6.0_101
    Java SE 6 Mise à jour 1052015-10-20Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 17 correctifs de sécurité
    Java SE 6 Mise à jour 1112016-01-20Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 13 correctifs de sécurité
    Java SE 6 Mise à jour 11305/02/2016Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 1 correctif de sécurité
    Java SE 6 Mise à jour 11521 avril 2016Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 8 correctifs de sécurité
    Java SE 6 Mise à jour 12119/07/2016Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 15 correctifs de sécurité
    Java SE 6 Mise à jour 13118 octobre 2016Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 13 correctifs de sécurité
    Java SE 6 Mise à jour 14117 janvier 2017Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 17 correctifs de sécurité
    Java SE 6 Mise à jour 15118 avril 2017Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 10 correctifs de sécurité
    Java SE 6 Mise à jour 16118 juillet 2017Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 5 correctifs de sécurité
    Java SE 6 Mise à jour 1712017-10-20Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 7 correctifs de sécurité
    Java SE 6 Mise à jour 18116 janvier 2018Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 12 correctifs de sécurité
    Java SE 6 Mise à jour 19117 avril 2018Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 7 correctifs de sécurité
    Java SE 6 Mise à jour 20117/07/2018Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 3 correctifs de sécurité
    Java SE 6 Mise à jour 21118 octobre 2018Non disponible publiquement, disponible uniquement via le programme de support Java SE et dans le groupe de correctifs recommandés de Solaris 10 ; 8 correctifs de sécurité

    La prise en charge des langages dynamiques par la JVM , avec le nouveau invokedynamicbytecode sous JSR-292, fait suite aux travaux de prototypage actuellement menés sur la machine virtuelle multilingue.

  • Pointeurs 64 bits compressés (disponibles dans Java 6 avec -XX:+UseCompressedOops)
  • Caractéristiques linguistiques du projet Coin :
    • Chaînes dans switch
    • Gestion automatique des ressources dans l'instruction try, également appelée instruction try-with-resources
    • Inférence de type améliorée pour la création d'instances génériques, alias l'opérateur diamant <>
    • Déclaration simplifiée de méthode à arguments variables
    • Littéraux entiers binaires
    • Autoriser les traits de soulignement dans les littéraux numériques
    • Capture de plusieurs types d'exceptions et relance des exceptions avec une vérification de type améliorée
    • Utilitaires de concurrence sous JSR 166
    • Nouvelle bibliothèque d'entrée/sortie de fichiers (définie par JSR 203) ajoutant la prise en charge de plusieurs systèmes de fichiers, des métadonnées de fichiers et des liens symboliques. Les nouveaux paquets sont : java.nio.file[ java.nio.file.attributejava.nio.file.spi
    • Timsort est utilisé pour trier les collections et les tableaux d'objets au lieu du tri fusion.
    • Prise en charge au niveau de la bibliothèque des algorithmes de cryptographie à courbes elliptiques
    • Un pipeline XRender pour Java 2D, qui améliore la gestion des fonctionnalités spécifiques aux GPU modernes.
    • Nouvelles API de plateforme pour les fonctionnalités graphiques initialement implémentées dans la version 6u10 en tant qu'API non prises en charge
    • Prise en charge améliorée au niveau de la bibliothèque des nouveaux protocoles réseau, notamment SCTP et Sockets Direct Protocol.
    • Mises à jour en amont pour XML et Unicode
    • Règles de déploiement Java

    Lambda (l'implémentation Java des fonctions lambda ), Jigsaw (l'implémentation Java des modules ) et une partie de Coin ont été supprimés de Java 7 et intégrés à Java 8 (à l'exception de Jigsaw , intégré à Java 9).

    Java 7 était la version par défaut à télécharger sur java.com d'avril 2012 jusqu'à la sortie de Java 8.

    Mises à jour de Java 7

    Oracle a publié des mises à jour publiques trimestrielles pour la famille Java 7 jusqu'en avril 2015, date à laquelle le produit a cessé d'être disponible au public. Les mises à jour ultérieures pour JDK 7, qui se sont poursuivies jusqu'en juillet 2022, ne sont accessibles qu'aux clients disposant d'un contrat de support.

    Tableau des mises à jour de Java 7
    Libérerdate de sortiePoints forts
    Java SE 7 28/07/2011Version initiale ; HotSpot VM 21
    Java SE 7 Mise à jour 1Solaris 11 et de Firefox 5 et versions ultérieures ; JavaFX inclus dans le JDK Java SE ; améliorations pour les applications Web.
    Java SE 7 Update 3ramasse-miettes pris en charge : Garbage-First (G1)
    Java SE 7 Mise à jour 5JavaFX et Java Access Bridge inclus dans l'installation de Java SE JDK et JRE, prise en charge de JavaFX pour les moniteurs et pavés tactiles, prise en charge de JavaFX pour Linux , prise en charge de JDK et JRE pour Mac OS X, JDK pour Linux sur ARM
    Java SE 7 Mise à jour 7Olson Data 2012i ; correction de bogues pour les problèmes d'enregistrement de plugins sur les systèmes disposant d'une version autonome de JavaFX installée, correctifs de sécurité pour 2013-0422 ; le niveau de sécurité par défaut pour les applets Java et les applications Web Start a été augmenté de « Moyen » à « Élevé »de l'architecture ARM à virgule flottante matérielle , de Java Mission Control 5.2 et de l'écran Retina
    Java SE 7 Mise à jour 45propositions d'amélioration du JDK (JEP).

    La première version candidate de Java 9 a été publiée le 9 août 2017. La première version stable de Java 9 a été publiée le 21 septembre 2017.

    Histoire

    Lors de JavaOne 2011, Oracle a présenté les fonctionnalités qu'ils espéraient intégrer à Java 9 en 2016. Java 9 devait notamment offrir une meilleure prise en charge des tas de plusieurs gigaoctets, une intégration plus poussée du code natif, un ramasse-miettes par défaut différent ( G1 , pour des « temps de réponse plus courts ») et une JVM à auto-optimisation . Début 2016, la sortie de Java 9 a été reprogrammée pour mars 2017 puis de nouveau reportée de quatre mois, à juillet 2017.

    Mises à jour Java 9

    Tableau des mises à jour de Java 9
    Libérerdate de sortiePoints forts
    Java SE 9 21/09/2017Version initiale
    Java SE 9.0.1 17 octobre 2017Nouvelles fonctionnalités
    • Ajout de vérifications de type supplémentaires pour les stubs IDL à la méthode org.omg.CORBA.ORB::string_to_object ( other-libs/corba )

    Problèmes connus

    • Le protocole TLS ne fonctionne pas par défaut sur OpenJDK 9 ( security-libs/java.security ).

    Changements

    • Supprimer le certificat racine Swisscom révoqué « swisscomrootevca2 » ( security-libs/java.security )
    • Refactoriser les fournisseurs existants pour qu'ils fassent référence aux mêmes constantes pour les valeurs par défaut de la longueur de clé ( security-libs/java.security ).
    • Les collections utilisent un filtre de sérialisation pour limiter la taille des tableaux ( security-libs/java.security ).
    • Ajouter des avertissements à keytool lors de l'utilisation de JKS et JCEKS ( security-libs/java.security )

    Autres notes

    • Les délais d'attente par défaut ont été modifiés pour le gestionnaire d'URL FTP ( core-libs/java.net ).

    Corrections de bugs

    • 12 corrections de bugs
    Java SE 9.0.4 16 janvier 2018Nouvelles fonctionnalités
    • Rendre open source les certificats racine du programme d'autorité de certification racine Java SE d'Oracle ( security-libs/javax.net.ssl ).
    • Ajout de la prise en charge du hachage de session TLS et de l'extension du secret maître ( security-libs/javax.net.ssl )
    • Paramètres éphémères de Diffie-Hellman négociés dans un champ fini pour TLS ( security-libs/javax.net.ssl )
    • Ajout de vérifications de type supplémentaires pour les stubs IDL à la méthode org.omg.CORBA.ORBstring_to_object ( other-libs/corba )

    Changements

    • Validation de la clé publique RSA ( security-libs/javax.crypto )
    • La taille de clé par défaut du fournisseur a été mise à jour ( security-libs/javax.crypto ).
    • Génération de clés plus stricte ( security-libs/javax.crypto )
    • Désactiver les suites de chiffrement exportables ( security-libs/javax.net.ssl )
    • Les connexions JMX nécessitent des filtres de désérialisation ( core-svc/javax.management ).
    • JDK Transform, Validation et XPath utilisent l'analyseur par défaut du système ( xml/jaxp )

    Corrections de bugs

    • Les fichiers JNLP ne s'ouvrent pas depuis IE11 sous Windows 10 Creators Update ( déploiement/démarrage Web ).
    • 11 corrections de bugs

    Tableau des mises à jour de Java 10
    Libérerdate de sortiePoints forts
    Java SE 10 2018-03-20Version initiale
    Java SE 10.0.1 17 avril 2018Nouvelles fonctionnalités
    • Mécanismes de gestion des clés améliorés ( security-libs/javax.crypto )

    Changements

    • Les signatures XML signées avec des clés EC inférieures à 224 bits sont désactivées ( security-libs/javax.xml.crypto )
    • Suites de chiffrement 3DES désactivées ( security-libs/javax.net.ssl )

    Autres notes

    • Utilisation de CipherOutputStream ( security-libs/javax.crypto )

    Corrections de bugs

    • 5 corrections de bugs
    Java SE 10.0.2 17/07/2018Changements
    • filterArguments exécute plusieurs filtres dans le mauvais ordre ( core-libs/java.lang.invoke )
    • Amélioration de la prise en charge LDAP ( core-libs/javax.naming )
    • Amélioration de la navigation dans la pile ( core-libs/java.io:serialization )

    Corrections de bugs

    • Plantage de la JVM pendant le GC G1 ( hotspot/gc )
    • 7 corrections de bugs

    un support à long terme (LTS ). Entre autres, Java 11 inclut un certain nombre de nouvelles fonctionnalités, telles que :

    • les applets Java et Java Web Start ne sont plus disponibles. Les modules JavaFX , Java EE et CORBA ont été retirés du JDK.

      Mises à jour Java 11

      Tableau des mises à jour de Java 11
      Libérerdate de sortiePoints forts
      Java SE 11 25/09/2018Version initiale
      Java SE 11.0.1 16 octobre 2018Changements
      • Ajout d'un certificat racine TeliaSonera supplémentaire ( security-libs/java.security )
      • Amélioration de la prise en charge LDAP ( core-libs/javax.naming )
      • Emplacement du fichier usagetracker.properties modifié dans le système de fichiers central ( core-svc )
      • Problème lors de la recherche des certificats clients dans le magasin de clés ( security-libs/javax.net.ssl )
      • Toutes les suites de chiffrement DES TLS ont été désactivées ( security-libs/javax.net.ssl ).
      • Entrées de chiffrement améliorées ( security-libs/javax.crypto )

      Corrections de bugs

      • Échec de la communication LDAPS ( core-libs/javax.naming )
      • Meilleure prise en charge des redirections HTTP ( core-libs/java.net )
      • 5 corrections de bugs
      Java SE 11.0.2 15 janvier 2019Problèmes connus
      • GTK+ 3.20 et versions ultérieures non prises en charge par Swing ( bibliothèques clientes )

      Changements

      • Les suites de chiffrement TLS anonymes et NULL sont désactivées ( security-libs/javax.net.ssl ).
      • Vérifications du code natif Linux ( point chaud/exécution )
      • L'option de case à cocher « Activer Java Access Bridge » dans le Panneau de configuration n'est pas disponible avec le programme d'installation JDK 11 ( security-libs/javax.net.ssl ).

      Corrections de bugs

      • 59 corrections de bugs
      Java SE 11.0.3 16 avril 2019Nouvelles fonctionnalités
      • Prise en charge des caractères carrés pour la nouvelle ère japonaise ( core-libs/java.util:i18n )

      Problèmes connus

      • Solution de contournement pour l'installation de Java Access Bridge ( installation )

      Changements

      • Ajout du certificat racine GlobalSign R6 ( security-libs/java.security )
      • Méfiez-vous des certificats de serveur TLS ancrés par les autorités de certification racine Symantec ( security-libs/javax.net.ssl )
      • Nom de la nouvelle ère japonaise : Reiwa ( core-libs/java.time )
      • Prise en charge de la nouvelle ère japonaise dans java.time.chrono.JapaneseEra ( core-libs/java.time )

      Corrections de bugs

      • 17 corrections de bugs
      Java SE 11.0.4 16/07/2019Nouvelles fonctionnalités
      • HotSpot Windows OS Detection identifie correctement Windows Server 2019 ( hotspot/runtime )

      Fonctionnalités et options supprimées

      • Suppression de deux certificats d'autorité de certification racine DocuSign ( security-libs/java.security )
      • Suppression de deux certificats d'autorité de certification racine Comodo ( security-libs/java.security )
      • Suppression du certificat racine CA 2 de T-Systems Deutsche Telekom ( security-libs/java.security )
      • Suppression de la racine globale GTE CyberTrust ( security-libs/java.security )

      Autres notes

      • Propriété système com.sun.org.apache.xml.internal.security.ignoreLineBreaks ( security-libs/javax.xml.crypto )
      • Propriété système permettant de basculer entre les implémentations d'ECC ( security-libs/javax.crypto )

      Corrections de bugs

      • 42 corrections de bugs
      Java SE 11.0.5 15 octobre 2019Nouvelles fonctionnalités
      • Nouveaux événements de sécurité pour Java Flight Recorder (JFR) ( security-libs/java.security )

      Autres notes

      • Utilisation du JDK ou du JRE sur macOS Catalina (10.15) ( docs )
      • Suppression des courbes EC NIST obsolètes des algorithmes TLS par défaut ( security-libs/javax.net.ssl )
      • Utiliser SunJCE Mac dans l'implémentation PBKDF2 de SecretKeyFactory ( security-libs/javax.crypto )
      • Solution de contournement pour l'installation de Java Access Bridge ( installation )
      • Mise à jour de l'implémentation de la signature XML pour Apache Santuario 2.1.3 ( security-libs/javax.xml.crypto )
      • La propriété système jdk.security.useLegacyECC est désactivée par défaut ( security-libs/javax.crypto )
      • Modification de Properties.loadFromXML pour se conformer à la spécification ( core-libs/java.util )
      • Restrictions relatives aux arguments de Runtime.exec et ProcessBuilder ( core-libs/java.lang )
      • Windows Server 2019 Core n'est pas pris en charge ( client-libs/2d )

      Corrections de bugs

      • 83 corrections de bugs
      Java SE 11.0.6 14 janvier 2020Nouvelles fonctionnalités
      • Autoriser la restriction des mécanismes SASL ( security-libs/javax.security )
      • Le fournisseur SunPKCS11 a été mis à jour avec la prise en charge de PKCS#11 v2.40 ( security-libs/javax.crypto:pkcs11 )

      Autres notes

      • Amélioration de la prise en charge du registre ( core-libs/java.rmi )
      • Nouvelles vérifications des certificats d'ancrage de confiance ( security-libs/java.security )
      • Correspondance exacte requise pour le certificat du serveur TLS de confiance ( security-libs/java.security )
      • Ajout du certificat racine global LuxTrust 2 ( install/security-libs/java.security )
      • Ajout de 4 certificats d'autorité de certification racine Amazon ( security-libs/java.security )
      • Désactiver AOT par défaut et modifier les indicateurs associés en Expérimental ( hotspot/compiler )
      • Epsilon GC a mal géré les stockages de tableaux vérifiés ( hotspot/gc )

      Corrections de bugs

      • Correction d'un problème de croissance de la mémoire dans SunPKCS11 ( security-libs/javax.crypto:pkcs11 )
      • Meilleure gestion des filtres sériels ( core-libs/java.io:serialization )
      • 123 corrections de bugs
      Java SE 11.0.7 14 avril 2020Nouvelles fonctionnalités
      • Prise en charge de la cryptographie MS de nouvelle génération (CNG) ( security-libs/javax.crypto )

      Corrections de bugs

      • 140 corrections de bugs
      Java SE 11.0.8 14 juillet 2020Nouvelles fonctionnalités
      • Nouvelles propriétés système pour configurer les schémas de signature TLS ( security-libs/javax.net.ssl )
      • Bibliothèque Apache Santuario mise à jour vers la version 2.1.4 ( security-libs/javax.xml.crypto )
      • Mise à niveau de la chaîne d'outils vers Xcode 10.1 ( infrastructure )
      • L'installateur Oracle JDK pour Windows fournit des exécutables (javac, etc.) dans un chemin accessible depuis n'importe quelle invite de commandes ( install/install ).

      Fonctionnalités et options supprimées

      • Suppression du certificat d'autorité de certification racine Comodo ( security-libs/java.security )
      • Suppression du certificat d'autorité de certification racine DocuSign ( security-libs/java.security )

      Autres notes

      • Gestion améliorée de la sérialisation ( security-libs/javax.net.ssl )
      • Meilleure présentation des tableaux ( security-libs/javax.net.ssl )
      • Le moteur SSL par défaut doit être créé dans le rôle serveur ( security-libs/javax.net.sslc ).
      • Les méthodes OperatingSystemMXBean à l'intérieur d'un conteneur renvoient des données spécifiques au conteneur ( core-svc/java.lang.management )
      • Taille par défaut du cache de session SSL mise à jour à 20480 ( bibliothèques de sécurité )
      • NSWindowStyleMaskTexturedBackground ( client-libs/javax.swing ) est obsolète.

      Corrections de bugs

      • 167 corrections de bugs
      Java SE 11.0.9 2020-10-20Nouvelles fonctionnalités
      • Les courbes nommées faibles dans TLS, CertPath et les JAR signés sont désactivées par défaut ( security-libs/java.security ).
      • Prise en charge des références inter-domaines Kerberos (RFC 6806) ( security-libs/org.ietf.jgss:krb5 )
      • Amélioration de la gestion des chaînes de certificats ( security-libs/javax.net.ssl )
      • Des outils avertissent en cas d'utilisation d'algorithmes faibles ( security-libs/java.security )
      • Prise en charge de la canonisation dans krb5.conf ( security-libs/org.ietf.jgss:krb5 )

      Autres notes

      • Ajout d'une propriété pour contrôler les mécanismes d'authentification LDAP autorisés à s'authentifier via des connexions non sécurisées ( core-libs/javax.naming )
      • Ajout de 3 certificats d'autorité de certification racine SSL Corporation ( security-libs/java.security )
      • Ajout d'une autorité de certification racine Entrust – certificat G4 ( security-libs/java.security )
      • Incohérence des noms de fuseaux horaires localisés entre l'anglais et d'autres langues ( core-libs/java.util:i18n )
      • Prise en charge améliorée de la classe Proxy ( core-libs/java.io:serialization )

      Corrections de bugs

      • 118 corrections de bugs
      Java SE 11.0.10 19 janvier 2021Nouvelles fonctionnalités
      • -groupname Option ajoutée à keytool Génération de paires de clés ( security-libs/java.security )
      • Prise en charge de l'extension certificate_authorities ( security-libs/javax.net.ssl )
      • Option POSIX_SPAWN sous Linux ( core-libs/java.lang )
      • Prise en charge des protocoles X25519 et X448 dans TLS ( security-libs/javax.net.ssl )
      • jarsigner préserve les permissions de fichiers POSIX et les attributs de liens symboliques ( security-libs/java.security )

      Autres notes

      • Oracle JDK11u pour Solaris nécessite désormais l'installation de harfbuzz ( client-libs/2d ).
      • Les données de fuseau horaire du JDK ont été mises à jour vers tzdata2020d ( core-libs/java.time )
      • Les données de fuseau horaire du JDK ont été mises à jour vers tzdata2020c ( core-libs/java.time )
      • Le nom de la nouvelle zone US/Pacific a été supprimé dans le cadre de tzdata2020b ( core-libs/java.time )

      Corrections de bugs

      • 118 corrections de bugs
      Java SE 11.0.11 2021-04-20Nouvelles fonctionnalités
      • jdeps --print-module-deps Affiche les dépendances transitives ( outils )

      Autres notes

      • Nouvelles propriétés système et de sécurité pour contrôler la reconstruction des objets distants par les implémentations JNDI, RMI et LDAP intégrées au JDK ( core-libs/javax.naming )
      • Ajout de 2 certificats d'autorité de certification racine HARICA ( security-libs/java.security )
      • Désactiver TLS 1.0 et 1.1 ( security-libs/javax.net.ssl )
      • Table de conversion de l'encodeur de caractères MS950 modifiée ( core-libs/java.nio.charsets )
      • Traitement moins ambigu des citations ProcessBuilder sous Windows > ( core-libs/java.lang )

      Corrections de bugs

      • 88 corrections de bugs
      Java SE 11.0.12 2021-07-20Nouvelles fonctionnalités
      • Prise en charge de MSSFU inter-royaumes ( security-libs/org.ietf.jgss:krb5 )
      • Personnalisation de la génération du magasin de clés PKCS12 ( security-libs/java.security )

      Fonctionnalités et options supprimées

      • Suppression des certificats racine avec clés de 1024 bits ( security-libs/java.security )
      • Suppression du certificat d'autorité de certification Sonera Class2 de Telia Company ( security-libs/java.security )

      Autres notes

      • Liste mise à jour des fonctionnalités fournies par les paquets RPM du JDK ( install/install )
      • L'argument ADDLOCAL=ToolsFeature,SourceFeature n'est plus nécessaire pour l'installateur JDK de Windows ( install/install ).
      • Mise à jour des algorithmes de chiffrement PKCS12 et MAC par défaut ( security-libs/java.security )
      • Désactiver les fichiers JAR SHA-1 ( security-libs/java.security )
      • Amélioration de l'encodage des valeurs de négociation du protocole de couche application TLS (ALPN) ( security-libs/javax.net.ssl )
      • Gestionnaire de protocole FTP URL : Validation d'adresse IPv4 en mode passif ( core-libs/java.net )

      Corrections de bugs

      • 106 corrections de bugs
      Java SE 11.0.13 19 octobre 2021Nouvelles fonctionnalités
      • Filtres de désérialisation spécifiques au contexte ( core-libs/java.io:serialization )

      Fonctionnalités et options supprimées

      • Suppression du certificat racine IdenTrust ( security-libs/java.security )
      • Supprimer le compilateur AOT et JIT expérimental dans OracleJDK 11u ( hotspot/compiler )

      Autres notes

      • Cette version ne reconnaît pas correctement Windows 11 ( core-libs/java.lang )
      • Modifier les noms des paquets dans les installateurs RPM/DEB Linux ( installation )
      • Mise à jour de la préférence relative aux suites de chiffrement activées par défaut ( security-libs/javax.net.ssl )
      • Propriété système permettant de contrôler la reconstruction des objets d'adresse de référence par l'implémentation LDAP JNDI intégrée du JDK ( core-libs/javax.naming )
      • Cette version ne reconnaît pas correctement Windows Server 2022 ( point d'accès/environnement d'exécution ).
      • Mise à jour de keytool pour créer un AKID à partir du SKID du certificat émetteur, conformément à la RFC 5280 ( security-libs/java.security ).
      • Initialisation de SunPKCS11 avec NSS lorsque des modules FIPS externes sont présents dans la base de données des modules de sécurité ( security-libs/javax.crypto:pkcs11 )

      Corrections de bugs

      • 93 corrections de bugs
      Java SE 11.0.14 18 janvier 2022Nouvelles fonctionnalités
      • Nouvelles propriétés de configuration SunPKCS11 ( security-libs/javax.crypto:pkcs11 )
      • Extensions configurables avec propriétés système ( security-libs/javax.net.ssl )

      Fonctionnalités et options supprimées

      • Suppression du certificat racine GlobalSign de Google ( security-libs/java.security )

      Autres notes

      • Le fournisseur du système de fichiers Zip lève une exception ZipException lorsque l'élément de nom d'entrée contient "." ou ".." ( core-libs/java.nio )
      • Mise à jour des données de fuseau horaire vers 2021c ( core-libs/java.time )
      • Prise en charge de la liaison de canal LDAP pour Java GSS/Kerberos ( core-libs/javax.naming )
      • Les exceptions SocketException ne sont pas encapsulées dans des exceptions SSLException dans SSLSocketImpl ( security-libs/javax.net.ssl )
      • OperatingSystemMXBean.getProcessCpuLoad est désormais compatible avec les conteneurs ( hotspot/runtime ).

      Corrections de bugs

      • 71 corrections de bugs
      Java SE 11.0.15 19 avril 2022Nouvelles fonctionnalités
      • Le fournisseur SunPKCS11 prend en charge le chiffrement ChaCha20-Poly1305 et le générateur de clés ChaCha20 s'ils sont pris en charge par la bibliothèque PKCS11 ( security-libs/javax.crypto:pkcs11 ).
      • Suites de chiffrement TLS ChaCha20 et Poly1305 ( security-libs/javax.net.ssl )
      • Nouvelles limites de traitement XML ( xml/jaxp )

      Autres notes

      • N’exposer que les certificats disposant de paramètres de confiance appropriés en tant qu’entrées de certificats de confiance dans le Trousseau d’accès macOS ( security-libs/java.security ).
      • L'analyse des chaînes d'URL dans les fournisseurs JNDI intégrés est plus stricte ( core-libs/javax.naming )

      Corrections de bugs

      • 81 corrections de bugs
      Java SE 11.0.16 19/07/2022Nouvelles fonctionnalités
      • Prise en charge de la liaison de canal HTTPS pour Java GSS/Kerberos ( core-libs/java.net )

      Autres notes

      • Mise à jour de java.net.InetAddress pour détecter les adresses IPv4 littérales ambiguës ( core-libs/java.net )
      • Extensions du JDK Bundle tronquées lors du téléchargement avec Firefox 102 ( core-libs/java.io:serialization )
      • Le vecteur doit lever une exception ClassNotFoundException lorsqu'une classe est manquante pour un élément ( core-libs/java.io:serialization )
      • Le compresseur JDK par défaut sera fermé en cas d'exception d'E/S ( core-libs/java.util.jar ).

      Corrections de bugs

      • 74 corrections de bugs
      Java SE 11.0.16.1 18 août 2022Changements
      • Erreurs de compilation C2 provoquant des plantages imprévisibles de la JVM ( hotspot/compiler )
      Java SE 11.0.17 18 octobre 2022Nouvelles fonctionnalités
      • Mettre à jour l'algorithme MAC PKCS12 par défaut ( security-libs/java.security )
      • Événement JDK Flight Recorder pour la désérialisation ( core-libs/java.io:serialization )

      Autres notes

      • Désactivation des fichiers JAR signés SHA-1 ( security-libs/java.security )
      • Dépréciation de 3DES et RC4 dans Kerberos ( security-libs/org.ietf.jgss:krb5 )
      • Rendre configurable le délai d'expiration par défaut de HttpURLConnection ( core-libs/java.net )
      • Les parts de processeur sont ignorées lors du calcul du nombre de processeurs actifs ( point chaud/exécution ).
      • Mise à jour des données de fuseau horaire vers 2022c ( core-libs/java.time )
      • Nouvelle propriété système pour limiter le nombre de connexions ouvertes à com.sun.net.httpserver.HttpServer ( core-libs/java.net )

      Corrections de bugs

      • 118 corrections de bugs
      Java SE 11.0.18 17 janvier 2023Nouvelles fonctionnalités
      • La reprise DTLS utilise les messages HelloVerifyRequest ( security-libs/javax.net.ssl )
      • Prise en charge de RSASSA-PSS dans la réponse OCSP ( security-libs/java.security )

      Problèmes connus

      • L'installation des RPM JDK x64 spécifiques à Oracle Linux inclut les dépendances i686 ( install/install )

      Autres notes

      • Moteur JavaScript FXML désactivé par défaut ( javafx/fxml )
      • Ensembles de ressources traduites pour l'allemand ( mondialisation )
      • Modifications apportées au programme d'installation RPM JDK ( install/install )
      • Désactiver l'installation simultanée de plusieurs mises à jour JDK dans les programmes d'installation JDK de Windows ( install/install )
      • Toutes les mises à jour du JDK sont installées dans le même répertoire sur macOS ( install/install ).
      • Gestion incorrecte des arguments entre guillemets dans ProcessBuilder ( core-libs/java.lang )
      • Nouvelle note d'implémentation pour LoginModule concernant la suppression des valeurs nulles d'un ensemble de principaux ou d'informations d'identification ( security-libs/javax.security )
      • Mise à niveau de la chaîne d'outils vers Visual Studio 2022 ( infrastructure )
      • Modification du comportement de SSLEngine.closeInbound() ( security-libs/javax.net.ssl )

      Corrections de bugs

      • 58 bug fixes
      Java SE 11.0.192023-04-18New features
      • Added a Default Native GSS-API Library on Windows (security-libs/org.ietf.jgss)

      Other notes

      • System Property to Handle HTML ObjectView Creation (client-libs/javax.swing)
      • Added Certigna(Dhimyotis) Root CA Certificate (security-libs/java.security)
      • Removed SSLv2Hello and SSLv3 From Default Enabled TLS Protocols (security-libs/javax.net.ssl)
      • File::listRoots Changed to Return All Available Drives on Windows (core-libs/java.io)
      • Crypto-J Exception for Diffie-Hellman and DSA AlgorithmParameters Requests (security-libs/java.security)

      Bug fixes

      • 55 bug fixes
      Java SE 11.0.202023-07-18New features
      • Allow Additional Characters for GB18030-2022 Support (core-libs/java.lang)
      • Support for GB18030-2022 (core-libs/java.nio.charsets)
      • Update the Javadoc in the Character Class to State Support for GB 18030-2022 Implementation Level 2 (core-libs/java.lang)
      • Windows KeyStore Updated to Include Access to the Local Machine Location (security-libs/java.security)
      • New JFR Event: jdk.InitialSecurityProperty (security-libs/java.security)
      • New JFR Event: jdk.SecurityProviderService (security-libs/java.security)
      • JDK Now Accepts RSA Keys in PKCS#1 Format (security-libs/javax.crypto)

      Known issues

      • Problem Upgrading JDK on Windows if System User Is Using Shared Files (install)

      Other notes

      • System Property to Turn off JDK-8251329 Restrictions (core-libs/java.nio)
      • Missing /usr/java/default Symlink on Linux Restored (install/install)
      • Installation of JDK RPM Corrupts Alternatives (install/install)
      • Added TWCA Root CA Certificate (security-libs/java.security)
      • Added 4 GTS Root CA Certificates (security-libs/java.security)
      • Added Microsoft Corporation's 2 TLS Root CA Certificates (security-libs/java.security)
      • System Property for Java SE Specification Maintenance Version (core-libs/java.lang)
      • GregorianCalender.computeTime() JVM Crash (hotspot/compiler)
      • ASLR Support for CDS Archive (hotspot/runtime)
      • Throw Error If Default java.security File Fails to Load (security-libs/java.security)
      • New System Property to Control the Maximum Size of Signature Files (security-libs/java.security)
      • Improved ZIP64 Extra Field Validation (core-libs/java.util.jar)

      Bug fixes

      • 43 bug fixes
      Java SE 11.0.212023-10-17New features
      • -XshowSettings:locale Output Now Includes Tzdata Version (tools/launcher)

      Removed features and options

      • Removed SECOM Trust System's RootCA1 Root Certificate (security-libs/java.security)

      Other notes

      • Added Certigna Root CA Certificate (security-libs/java.security)
      • Debian JDK Installer Changes (install/install)
      • Ignore Allow and Disallow Options for java.security.manager System Property (security-libs/java.security)
      • The Default TLS Diffie-Hellman Group Size Has Been Increased from 1024-bit to 2048-bit (security-libs/javax.net.ssl)
      • Use Server Cipher Suites Preference by Default (security-libs/javax.net.ssl)

      Bug fixes

      • 29 bug fixes
      Java SE 11.0.222024-01-16New features
      • New System Property to Toggle XML Signature Secure Validation Mode (security-libs/javax.xml.crypto)

      Known issues

      • Potential Performance Regression Due to Limited Range Check Elimination (hotspot/compiler)

      Other notes

      • Add Process-Memory Information to hs-err and VM.info (hotspot/runtime)
      • Increase Default Value of the System Property jdk.jar.maxSignatureFileSize (security-libs/java.security)
      • Added Four Root Certificates from DigiCert, Inc. (security-libs/java.security)
      • Added Three Root Certificates from eMudhra Technologies Limited (security-libs/java.security)
      • Added Telia Root CA v2 Certificate (security-libs/java.security)
      • Added ISRG Root X2 CA Certificate from Let's Encrypt (security-libs/java.security)
      • Call X509KeyManager.chooseClientAlias Once for All Key Types (security-libs/javax.net.ssl)
      • Add Process-Memory Information to hs-err and VM.info (hotspot/runtime)

      Bug fixes

      • 29 bug fixes
      Java SE 11.0.232024-04-16
      Java SE 11.0.242024-07-16
      Java SE 11.0.252024-10-15
      Java SE 11.0.262025-01-21
      Java SE 11.0.272025-04-15
      Java SE 11.0.282025-07-15
      Java SE 11.0.292025-10-21

      Table of Java 12 updatesReleaseRelease dateHighlightsJava SE 122019-03-19Initial releaseJava SE 12.0.12019-04-16Known issues

      • Java Access Bridge Installation Workaround (install)

      Changes

      • Added GlobalSign R6 Root Certificate (security-libs/java.security)
      • New Japanese Era Name Reiwa (core-libs/java.time)

      Bug fixes

      • 3 bug fixes
      Java SE 12.0.22019-07-16Removed features and options
      • Removal of Two DocuSign Root CA Certificates (security-libs/java.security)
      • Removal of Two Comodo Root CA Certificates (security-libs/java.security)
      • Removal of T-Systems Deutsche Telekom Root CA 2 Certificate (security-libs/java.security)

      Other notes

      • Java Access Bridge Installation Workaround (install)

    Table of Java 13 updates
    ReleaseRelease dateHighlights
    Java SE 132019-09-17Initial release
    Java SE 13.0.12019-10-15Other notes
    • Using the JDK or JRE on macOS Catalina (10.15) (docs)
    • Remove Obsolete NIST EC Curves from the Default TLS Algorithms (security-libs/javax.net.ssl)
    • Text Visibility Issues in macOS Dark Mode (client-libs)
    • Runtime.exec and ProcessBuilder Argument Restrictions (core-libs/java.lang)
    Java SE 13.0.22020-01-14Other notes
    • New Checks on Trust Anchor Certificates (security-libs/java.security)
    • Exact Match Required for Trusted TLS Server Certificate (security-libs/java.security)
    • Added LuxTrust Global Root 2 Certificate (security-libs/java.security)
    • Added 4 Amazon Root CA Certificates (security-libs/java.security)
    • Improve Registry Support (core-libs/java.rmi)

    Bug fixes

    • Better Serial Filter Handling (core-libs/java.io:serialization)
    • 29 bug fixes

    instead of:

    Table of Java 21 updates
    ReleaseRelease dateHighlights
    Java SE 212023-09-19Initial release
    Java SE 21.0.12023-10-17Other notes
    • Added Certigna Root CA Certificate (security-libs/java.security)
    • Increase Default Value of the System Property jdk.jar.maxSignatureFileSize (security-libs/java.security)

    Bug fixes

    • 40 bug fixes
    Java SE 21.0.22024-01-16New features
    • TCP_KEEPxxxx Extended Socket Options Are Now Supported on the Windows Platform (core-libs/java.net)

    Known issues

    • Potential Performance Regression Due to Limited Range Check Elimination (hotspot/compiler)

    Issues fixed

    • ZGC: Reintroduced Support for Non-Default ObjectAlignmentInBytes (hotspot/compiler)

    Other notes

    • Added Four Root Certificates from DigiCert, Inc. (security-libs/java.security)
    • Added Three Root Certificates from eMudhra Technologies Limited (security-libs/java.security)
    • Added Telia Root CA v2 Certificate (security-libs/java.security)
    • Added ISRG Root X2 CA Certificate from Let's Encrypt (security-libs/java.security)
    • NMT: Make Peak Values Available in Release Builds (hotspot/runtime)
    • Add User Facing Warning If THPs Are Enabled but Cannot Be Used (hotspot/runtime)

    Bug fixes

    • 74 bug fixes
    Java SE 21.0.32024-04-16New features
    • Update XML Security for Java to 3.0.3 (security-libs/javax.crypto)

    Known issues

    • jpackage Apps May Fail to Build on Debian Linux Distros Due to Missing Shared Libraries (tools/jpackage)

    Other notes

    • AWT SystemTray API Is Not Supported on Most Linux Desktops (client-libs/java.awt)
    • Added Certainly R1 and E1 Root Certificates (security-libs/java.security)
    • Align javac with the Java Language Specification by Rejecting final in Record Patterns (tools/javac)

    Updates to Third Party Libraries

    • FreeType 2.13.2 (java.desktop)
    • Xalan Java 2.7.3 (java.xml)
    • XML Security for Java 3.0.3 (java.xml.crypto)

    Bug fixes

    • 27 bug fixes
    Java SE 21.0.42024-07-16
    Java SE 21.0.52024-10-15
    Java SE 21.0.62025-01-21
    Java SE 21.0.72025-04-15
    Java SE 21.0.82025-07-25
    Java SE 21.0.92025-10-21

    Project Lilliput)

  • Java applets with the Applet API, after having been deprecated since the release of Java 17 in September 2021.

  • Future features

    • Project Valhalla: Value classes, whose objects lack identity, but can in certain cases get an improved memory layout (with less indirection), or have their allocation optimized away entirely.
    • Project Panama:
      • Improved interoperability with native code, to enable Java source code to call functions and use data types from other languages, in a way that is easier and has better performance than today (this part of Project Panama is getting stabilized in Java 22 under JEP 454: Foreign Function & Memory API).
      • Vector API, a portable and relatively low-level abstraction layer for SIMD programming. Its stabilization is dependent on Project Valhalla.
    • Project Lilliput: Reduce the size of Java object headers. First down to 64 bits, and then down to 32 bits.
    • Reducing startup time and warm-up time (time to peak performance) in JIT mode:
      • Project CRaC enables making snapshots of whole JVM (together with the running application) and restoring it with necessary adjustments (reopening files, sockets, etc).
      • Project Leyden, among other things, will allow partial or (in the long term) full AOT compiling, reducing overall dynamism (by adopting so called "closed-world constraints") to reduce dynamic compiling overhead.
    • Project Babylon aims to extend the Java language's reach to alternative programming models with an enhancement to its reflective programming abilities, called code reflection (i.e., reflection over code itself). The stated main goal is to run Java code on GPUs, with SQL and other programming models as secondary targets.

    Implementations

    The officially supported Java platform, first developed at Sun and now stewarded by Oracle, is Java SE. Releases are based on the OpenJDK project, a free and open-source project with an open development model. Other Java implementations exist, however—in part due to Java's early history as proprietary software. In contrast, some implementations were created to offer some benefits over the standard implementation, often the result of some area of academic or corporate-sponsored research. Many Linux distributions include builds of OpenJDK through the IcedTea project started by Red Hat, which provides a more straightforward build and integration environment.

    Visual J++ and the Microsoft Java Virtual Machine were created as incompatible implementations. After the Sun v. Microsoft lawsuit, Microsoft abandoned it and began work on the .NET platform. In 2021, Microsoft started distributing compatible "Microsoft Build of OpenJDK" for Java 11 first then also for Java 17. Their builds support not only Windows, but also Linux and macOS.

    Other proprietary Java implementations are available, such as Azul's Zing. Azul offers certified open source OpenJDK builds under the Zulu moniker.

    Prior to the release of OpenJDK, while Sun's implementation was still proprietary, the GNU Classpath project was created to provide a free and open-source implementation of the Java platform. Since the release of JDK 7, when OpenJDK became the official reference implementation, the original motivation for the GNU Classpath project almost completely disappeared, and its last release was in 2012.

    The Apache Harmony project was started shortly before the release of OpenJDK. After Sun's initial source code release, the Harmony project continued, working to provide an implementation under a lax license, in contrast to the protective license chosen for OpenJDK. Google later developed Android and released it under a lax license. Android incorporated parts of the Harmony project, supplemented with Google's own Dalvik virtual machine and ART. Apache Harmony has since been retired, and Google has switched its Harmony components with equivalent ones from OpenJDK.

    Both Jikes and Jikes RVM are open-source research projects that IBM developed.

    Several other implementations exist that started as proprietary software, but are now open source. IBM initially developed OpenJ9 as the proprietary J9, but has since relicensed the project and donated it to the Eclipse Foundation. JRockit is a proprietary implementation that was acquired by Oracle and incorporated into subsequent OpenJDK versions.

    Most commonly used implementations in 2025

    Amazon developed Corretto, a no-cost, multiplatform, production-ready distribution of OpenJDK with long-term support that includes performance enhancements and security fixes. Corretto is certified as compatible with the Java SE standard and is used internally at Amazon for many production services.

    The Eclipse Temurin project, formerly known as AdoptOpenJDK, provides prebuilt OpenJDK binaries from a fully open source build farm. The project transitioned to the Eclipse Foundation in 2021 as part of the Adoptium Working Group, which ensures high-quality, vendor-neutral Java runtime distributions.

    SAP's downstream distribution of OpenJDK, optimized for SAP applications and deployments. It provides both short-term and long-term support releases aligned with OpenJDK's release schedule.

    Alibaba Dragonwell is a downstream version of OpenJDK with some in-house optimizations. It includes enhancements in startup performance, footprint, and throughput.

    GraalVM represents a significant departure from traditional Java implementations. Developed by Oracle Labs, it provides a polyglot virtual machine supporting multiple languages beyond Java, including JavaScript, Python, Ruby, and R. GraalVM includes an advanced just-in-time compiler written in Java and supports ahead-of-time compilation for creating native executables, substantially reducing startup time and memory footprint.

    The Red Hat build of OpenJDK is Red Hat's supported distribution of OpenJDK for Red Hat Enterprise Linux and Windows, providing long-term support and regular updates as part of Red Hat's subscription offerings.

    The Semeru Runtime, based on the Eclipse OpenJ9 JVM and OpenJDK class libraries, is IBM's no-cost Java runtime optimized for cloud deployments. It offers improved startup time, smaller memory footprint, and better throughput compared to HotSpot-based implementations.

    Plus d articles de Worldlex Wiki

    Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

    Explorer l index