En 2017/9, des modifications du système de support Java d'Oracle et du cycle de publication ont été annoncées, et diverses discussions sur OpenJDK et Oracle JDK ont commencé à circuler, mais elles ne sont pas organisées. Ici, je voudrais trier les termes qui semblent représenter l'implémentation principale de Java. Si vous avez une longue phrase, vous devriez simplement regarder le résumé.
Une définition claire du terme Java est difficile, mais une chose est sûre: c'est une marque d'Oracle. «Java» utilisé comme conversation est parlé sous le mot «Java», comme la mise en œuvre de logiciels et l'environnement de développement centré sur la spécification Java SE, les bibliothèques, leurs développeurs / organisations, les communautés et les tendances des produits utilisés. Je pense que cela comprend une variété de problèmes techniques. Je pense que cela s'applique généralement aux langages de programmation tels que Ruby et Scala.
Java SE est un ensemble de spécifications. Des exemples typiques sont la spécification du langage Java, la spécification de la machine virtuelle Java et la spécification de l'API Java. En tant que caractéristique de l'API, il est difficile de séparer les spécifications et les implémentations, et ce n'est pas sous la forme de spécifications, mais JavaDoc explique le mouvement avec le plus de détails possible. Chaque spécification de Java SE est décidée par un processus appelé JCP. Les entreprises, organisations et particuliers autres qu'Oracle participent également à JCP. Ensuite, Oracle fournit un TCK (Technology Compatibility Kit) qui vérifie si l'implémentation de Java SE est conforme à ces spécifications, et en passant par ce TCK, l'implémentation est reconnue comme conforme à Java SE. Je vais. Pour être précis, il n'existe pas de Java 8 ou Java 10, qui est une abréviation de Java SE 8 ou Java SE 10, mais il est souvent utilisé dans la pratique. En particulier, dans la situation actuelle où Java EE est passé à Jakarta EE et Java ME est à peine apparu dans le tableau, le besoin d'écrire comme Java SE 11 a diminué et l'écriture comme Java 11 a augmenté. Je pense que c'est.
Aussi, dans ce sens, les expressions «version gratuite de Java SE disparue» et «Java SE payant» ne sont pas très correctes, mais je pense qu'Oracle lui-même utilise vaguement le mot Java SE. Cependant, cela peut être interprété comme "Java SE sur le site d'Oracle est JDK", donc quand quelqu'un d'autre qu'Oracle se réfère au Java SE d'Oracle, il sera "disparu" comme "Oracle Java SE". Je pense qu'il est plus précis d'utiliser quelque chose comme "Oracle Java SE Free Edition" ou "Paid Oracle Java SE".
Un projet open source qui développe des logiciels et des produits associés basés sur Java SE, et un emplacement pour stocker le code source de ce produit. Les produits OpenJDK incluent des machines virtuelles Java qui fonctionnent selon les spécifications de la machine virtuelle Java, des compilateurs Java qui convertissent le code de programme écrit dans une syntaxe basée sur les spécifications du langage Java en codes d'octets qui fonctionnent sur des machines virtuelles Java et des machines virtuelles Java. Il comprend des implémentations d'API qui fonctionnent et sont basées sur la spécification API Java, ainsi que des environnements d'exécution et de développement tels que des profileurs et des débogueurs. La VM Java OpenJDK est appelée la VM HotSpot.
En fait, nous ne fournissons pas de binaires. Vous pouvez télécharger les binaires sur jdk.java.net, mais java.net est le site d'Oracle, sur lequel vous pouvez télécharger les binaires OpenJDK créés et testés par Oracle. D'autres comme AdoptOpenJDK, Azul System et Red Hat fournissent leurs propres binaires de construction. Google a un binaire OpenJDK pour son service cloud.
JDK est également une marque d'Oracle et signifie Java Development Kit. Le nom de produit du kit d'outils de développement Java SE fourni par Oracle. Il est essentiellement développé comme Open JDK.
Puisqu'il s'agit d'un kit de développement, il comprend les outils nécessaires au développement comme un compilateur. Ce qui n'était nécessaire qu'au moment de l'exécution était distribué en tant que JRE (Java Runtime Environment), mais il est obsolète depuis Java 9.
Quand nous disons simplement JDK, il est difficile de dire s'il s'agit d'un Open JDK ou d'un Oracle JDK, donc il s'appelle désormais Oracle JDK pour le distinguer. Oracle JDK était l'implémentation d'OpenJDK avec des fonctionnalités commerciales telles que Flight Recorder et Mission Control, et des fonctionnalités de bureau telles que JavaFX et Java Web Start. Cependant, des fonctionnalités commerciales telles que Flight Recorder et Mission Control seront données à OpenJDK, et JavaFX et Java Web Start ne seront plus regroupés avec Oracle JDK, donc à partir de Java 11, OpenJDK et Oracle JDK seront fonctionnellement identiques. Il est devenu. Donc, s'il n'y a pas de différence dans les binaires, Oracle JDK est livré avec un programme d'installation. Lorsqu'il n'y a pas de versions de mise à jour pour OpenJDK, les versions de mise à jour seront publiées avec leurs propres correctifs. De plus, bien sûr, la licence est différente.
Java = écosystème Java SE = spécification OpenJDK = projet open source qui implémente Java SE Oracle JDK = OpenJDK construit par Oracle + installateur
OpenJDK sur jdk.java.net = OpenJDK construit par Oracle AdoptOpenJDK OpenJDK = OpenJDK construit par la communauté AdoptOpenJDK Zulu = OpenJDK + installateur construit par Azul IBM Java SDK = OpenJDK construit par IBM - HotSpot VM + OpenJ9 + installer
Recommended Posts