En bref:
- OpenJDK a plusieurs significations et peut faire référence à:
- implémentation gratuite et open source de la plateforme Java, Standard Edition (Java SE)
- référentiel open source - le code source Java aka projet OpenJDK
- binaires OpenJDK prédéfinis maintenus par Oracle
- binaires OpenJDK prédéfinis maintenus par la communauté OpenJDK
- AdoptOpenJDK - binaires OpenJDK prédéfinis maintenus par la communauté ( licence open source )
Explication:
OpenJDK prédéfini (ou distribution) - binaires, construits à partir de http://hg.openjdk.java.net/ , fournis en tant qu'archives ou installateurs, proposés pour diverses plates-formes, avec un éventuel contrat de support.
OpenJDK, le référentiel source (également appelé projet OpenJDK ) - est un référentiel open source basé sur Mercurial , hébergé sur
http://hg.openjdk.java.net . Le code source Java. La grande majorité des fonctionnalités Java (de la VM et des bibliothèques principales au compilateur) sont basées uniquement sur ce référentiel source. Oracle en a une autre.
OpenJDK, la distribution (voir la liste des fournisseurs ci-dessous) - est gratuite comme dans la bière et une sorte de libre comme dans la parole , mais, vous ne pouvez pas appeler Oracle si vous avez des problèmes avec elle. Il n'y a pas de contrat de support. En outre, Oracle ne publiera des mises à jour de toute version d'OpenJDK (la distribution) que si cette version est la version Java la plus récente, y compris les versions LTS (support à long terme). Le jour où Oracle publie OpenJDK (la distribution) version 12.0, même s'il y a un problème de sécurité avec OpenJDK (la distribution) version 11.0, Oracle ne publiera pas de mise à jour pour 11.0. Maintenu uniquement par Oracle.
Certains projets OpenJDK - tels que OpenJDK 8 et OpenJDK 11 - sont maintenus par la communauté OpenJDK et fournissent des versions pour certaines versions d'OpenJDK pour certaines plates-formes. Les membres de la communauté ont pris la responsabilité de publier des correctifs pour les vulnérabilités de sécurité dans ces versions d'OpenJDK.
AdoptOpenJDK, la distribution est très similaire à la distribution OpenJDK d'Oracle (en ce sens qu'elle est gratuite et qu'il s'agit d'une construction produite en compilant les sources à partir du référentiel source OpenJDK). AdoptOpenJDK en tant qu'entité ne rétroportera pas les correctifs, c'est-à-dire qu'il n'y aura pas de «fork / version» d'AdoptOpenJDK qui soit matériellement différent de l'amont (sauf pour certains correctifs de script de construction pour des choses comme le support de Win32). Cela signifie que si des membres de la communauté (Oracle ou autres, mais pas AdoptOpenJDK en tant qu'entité) rétroportent les correctifs de sécurité vers les mises à jour des versions d'OpenJDK LTS, alors AdoptOpenJDK fournira des versions pour ceux-ci. Maintenu par la communauté OpenJDK.
OracleJDK - est encore une autre distribution. À partir de JDK12, il n'y aura pas de version gratuite d'OracleJDK. L'offre de distribution JDK d'Oracle est destinée au support commercial. Vous payez pour cela, mais vous pouvez ensuite compter sur Oracle pour le support. Contrairement à l'offre OpenJDK d'Oracle, OracleJDK est livré avec une prise en charge plus longue des versions LTS. En tant que développeur, vous pouvez obtenir une licence gratuite pour une utilisation personnelle / de développement uniquement de ce JDK particulier, mais c'est surtout un hareng rouge, car «juste le binaire» est fondamentalement le même que le binaire OpenJDK. Je suppose que cela signifie que vous pouvez télécharger des versions corrigées de sécurité des JDK LTS à partir des sites Web d'Oracle tant que vous promettez de ne pas les utiliser à des fins commerciales.
Remarque . Il peut être préférable d'appeler les versions d'OpenJDK d'Oracle les «versions d'Oracle OpenJDK».
Donald Smith, chef de produit Java chez Oracle écrit :
Idéalement, nous ferions simplement référence à toutes les versions d'Oracle JDK sous le nom de "Oracle JDK", soit sous la GPL soit sous la licence commerciale, selon votre situation. Cependant, pour des raisons historiques, bien que les petites différences restantes existent, nous les appellerons séparément les versions d'OpenJDK d'Oracle et le JDK d'Oracle.
Fournisseurs OpenJDK et comparaison
-------------------------------------------------- --------------------------------------
| Fournisseur | Constructions gratuites | Binaire gratuit | Extended | Commercial | Permissive |
| | de la source | Distributions | Mises à jour | Support | Licence |
| ------------------------------------------------- ------------------------------------- |
| AdoptOpenJDK | Oui | Oui | Oui | Non | Oui |
| Amazon - Corretto | Oui | Oui | Oui | Non | Oui |
| Azul Zulu | Non | Oui | Oui | Oui | Oui |
| BellSoft Liberica | Non | Oui | Oui | Oui | Oui |
| IBM | Non | Non | Oui | Oui | Oui |
| jClarity | Non | Non | Oui | Oui | Oui |
| OpenJDK | Oui | Oui | Oui | Non | Oui |
| Oracle JDK | Non | Oui | Non ** | Oui | Non |
| Oracle OpenJDK | Oui | Oui | Non | Non | Oui |
| ojdkbuild | Oui | Oui | Non | Non | Oui |
| RedHat | Oui | Oui | Oui | Oui | Oui |
| SapMachine | Oui | Oui | Oui | Oui | Oui |
-------------------------------------------------- --------------------------------------
Builds gratuits à partir de la source - le code source de la distribution est disponible publiquement et on peut assembler sa propre version
Distributions binaires gratuites - les binaires de distribution sont accessibles au public pour téléchargement et utilisation
Mises à jour étendues - aka LTS (support à long terme) - Mises à jour publiques au-delà du cycle de vie de publication de 6 mois
Support commercial - certains fournisseurs proposent des mises à jour étendues et un support client aux clients payants, par exemple Oracle JDK ( détails du support )
Licence permissive - la licence de distribution n'est pas protectrice, par exemple Apache 2.0
Quelle distribution Java dois-je utiliser?
À l'époque de Sun / Oracle, c'était généralement Sun / Oracle qui produisait les distributions JDK en aval propriétaires basées sur des sources OpenJDK. Récemment, Oracle avait décidé de faire ses propres builds propriétaires uniquement avec le support commercial attaché. Ils publient également gracieusement les versions d'OpenJDK sur leur site https://jdk.java.net/ .
Ce qui se passe à partir du JDK 11 est le passage de l'état d'esprit de fournisseur unique (Oracle) à l'état d'esprit où vous sélectionnez un fournisseur qui vous donne une distribution pour le produit, dans les conditions que vous aimez: plates-formes pour lesquelles ils construisent, fréquence et rapidité des versions. , comment le support est structuré, etc. Si vous ne faites confiance à aucun des fournisseurs existants, vous pouvez même créer OpenJDK vous-même.
Chaque version d'OpenJDK est généralement réalisée à partir du même référentiel source d'origine en amont (OpenJDK «le projet»). Cependant, chaque version est assez unique - gratuite ou commerciale, de marque ou sans marque, pure ou groupée (par exemple, BellSoft Liberica JDK propose JavaFX groupé, qui a été supprimé des versions Oracle à partir du JDK 11).
Si aucun environnement (par exemple, Linux) et / ou aucune exigence de licence ne définit une distribution spécifique et si vous voulez la version JDK la plus standard , alors la meilleure option est probablement d'utiliser OpenJDK par Oracle ou AdoptOpenJDK.
Information additionnelle
Il est temps de regarder au-delà du JDK d' Oracle par Stephen Colebourne
Java Is Still Free par la communauté Java Champions (publié le 17 septembre 2018)
Java is Still Free 2.0.0 par la communauté Java Champions (publié le 3 mars 2019)
Aleksey Shipilev à propos des mises à jour de JDK interview par Opsian (publié le 27 juin 2019)