Que sont JDK, Oracle JDK, OpenJDK, Java SE?

Je ne connais pas JDK ou Java SE

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é.

Qu'est-ce que Java en premier lieu?

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.

Qu'est-ce que Java SE

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".

Qu'est-ce qu'OpenJDK?

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.

Qu'est-ce que JDK

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.

Qu'est-ce qu'Oracle JDK?

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.

Résumé

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

Que sont JDK, Oracle JDK, OpenJDK, Java SE?
Que sont les métriques Java? _Memo_20200818
Reçu un programmeur Java certifié Oracle, Gold SE 8
[Java] Que sont les remplacements et les surcharges?
Expérience de réussite certifiée Oracle Java Silver SE 8
[Talend] Passer d'Oracle JDK à Open JDK
Quelles sont les fonctionnalités mises à jour de Java 13
Fonctionnalités d'Oracle JDK 8 mais pas d'Open JDK
Ce que j'ai fait pour obtenir le programmeur Java certifié Oracle, Silver SE 8
Présentation de Java SE
Qu'est-ce que 'java
Oracle Java Day 2017
Remarque sur Java SE 7
Qu'est-ce que Java <>?
Qu'est-ce que 'java
[Java] Comment passer de jdk ouvert à jdk oracle
Abonnement Java SE
Un ancien médecin littéraire a acquis Oracle Java Bronze SE 7/8
Programmeur Java certifié Oracle, expérience de l'examen de certification Silver SE 8
Procédure d'installation du Java SE Development Kit (JDK) sous Windows
Histoire de passer Java Silver SE8 (programmeur Java certifié Oracle, Silver SE 8)
Expérience de l'examen Silver SE 8 de programmeur Java certifié Oracle
[Java Silver] Que sont les variables de classe, les variables d'instance et les variables locales?
Java SE8 Silver réussi
Reçu Oracle Java Bronze
Qu'est-ce que l'encapsulation Java?
[java] Java SE 8 Silver Note
Qu'est-ce que la technologie Java?
Qu'est-ce que Java API-java
[Java] Qu'est-ce que flatMap?
[Java] Qu'est-ce que ArrayList?
Les journaux Stackdriver Logging ne sont pas alignés dans GAE SE pour Java 8
Oracle Java Trends 2018 = Résumé rapide = (En regardant la version Oracle JDK 11)
Ce que vous avez appris lors de l'acquisition de Java SE 8 Silver and Gold