Différences entre Oracle JDK et OpenJDK


700

REMARQUE: cette question date de 2014. Depuis Java 11, OpenJDK et Oracle JDK convergent.

Existe-t-il des différences cruciales entre Oracle et OpenJDK?

Par exemple, le garbage collection et les autres paramètres JVM sont-ils les mêmes?

GC fonctionne-t-il différemment entre les deux?


3
Cela peut également être pertinent si vous prévoyez de passer d'Oracle à OpenJDK, car Oracle n'est plus gratuit. developers.redhat.com/blog/2018/11/05/…
Leo Ufimtsev

Réponses:


338

OpenJDK et Oracle JDK sont créés et gérés actuellement par Oracle uniquement.

OpenJDK et Oracle JDK sont des implémentations de la même spécification Java passée le TCK (Java Technology Certification Kit).

La plupart des fournisseurs de JDK sont écrits au-dessus d'OpenJDK en faisant quelques ajustements pour [principalement remplacer les pièces propriétaires sous licence / remplacer par des éléments plus performants qui ne fonctionnent que sur des systèmes d'exploitation spécifiques] sans casser la compatibilité TCK.

De nombreux fournisseurs ont implémenté la spécification Java et obtenu le TCK. Par exemple, IBM J9, Azul Zulu, Azul Zing et Oracle JDK.

Presque tous les JDK existants sont dérivés d'OpenJDK.

Comme beaucoup le suggèrent, l'octroi de licences est un changement entre les JDK.

À partir de JDK 11, l'accès à la prise en charge de longue date d'Oracle JDK / Java SE nécessite désormais une licence commerciale. Vous devez maintenant faire attention au JDK que vous installez car Oracle JDK sans abonnement pourrait cesser de fonctionner. la source

Réf: Liste des machines virtuelles Java


13
Donc, vous dites que openjdk est la base de référence pour tous les autres jdks juste qu'ils le copient puis le peaufinent après ses propres spécifications?
Karl Morrison

24
Je suis en retard à la fête, mais je vais quand même demander. Qu'est-ce que jdk apporte à la table que openjdk ne fait pas? Toutes ces réponses donnent à openjdk un son égal ou supérieur à tous égards, mais si tel est le cas, pourquoi Oracle prend-il la peine de maintenir jdk?
Kefka

@ Karl Morrison Pour autant que je sache, .. tout le monde implémentant les spécifications JVM de cette façon uniquement .. mais il n'y a pas de règle explicite selon laquelle il faut suivre cette voie ...
Venkateswara Rao

13
@ Mella OpenJDK <= OracleJDK Par exemple, Oracle JDK a peu de clés de confiance configurées, qui n'étaient pas dans OpenJDK (Maintenant, un jour, les gens les importent simplement pour combler cette lacune) Oracle JDK a quelques bibliothèques SWING qui sont propriétaires pour accélérer le rendu .. (Ceux qui font des applications serveur, peuvent ne pas être pertinents pour eux) Oracle JDK a un plugin Applet (La même raison que ci-dessus fonctionne) Oracle JDK bugfix / hotfix serait distribué et géré correctement par Oracle où OpenJDK est peu technique pour assurer tous les correctifs sont appliqués et quel conflit ils auraient
Venkateswara Rao

Notez qu'avec le nouveau modèle de version pour java, Oracle prévoit de réduire autant que possible l'écart entre les deux jdk. Existe-t-il d'autres contributeurs open source pour ouvrir jdk autres que les développeurs Oracle? Il s'agit de comprendre s'il y aurait suffisamment de support pour rétroporter un correctif de la dernière version à la version précédente. Des pensées?
Andy Dufresne

329

Pour Java 7 , rien de crucial. Le projet OpenJDK est principalement basé sur le code source HotSpot donné par Sun.

De plus, OpenJDK a été sélectionné pour être l' implémentation de référence pour Java 7 et est maintenu par les ingénieurs Oracle.

Il y a une réponse plus détaillée de 2012 sur la différence entre JVM, JDK, JRE et OpenJDK , qui renvoie à un article de blog Oracle :

Q : Quelle est la différence entre le code source trouvé dans le référentiel OpenJDK et le code que vous utilisez pour créer le JDK Oracle?

R : C'est très proche - notre processus de construction pour Oracle JDK publie s'appuie sur OpenJDK 7 en ajoutant seulement quelques éléments, comme le code de déploiement, qui comprend la mise en œuvre d'Oracle du plug-in Java et de Java WebStart, ainsi que certains tiers de source fermée des composants tiers comme un rasterizer graphique, des composants tiers open source, comme Rhino, et quelques morceaux ici et là, comme de la documentation supplémentaire ou des polices tierces. À l'avenir, notre intention est d'ouvrir toutes les pièces du JDK Oracle à l'exception de celles que nous considérons comme des fonctionnalités commerciales telles que JRockit Mission Control (non encore disponible dans Oracle JDK), et de remplacer les composants tiers encombrés par des alternatives open source pour atteindre une parité plus étroite. entre les bases de code.


42
Il existe également des différences de licence.
mcoolive

9
merci j'ai trouvé une meilleure réponse. stackoverflow.com/questions/17360011/…
astroanu

9
Sur ARM, au moins, ces deux semblent avoir des performances sensiblement différentes. Je devrais faire un profilage sur la raison pour laquelle cela se produit, mais la différence subjective est "Oracle JDK est ok" et "OpenJDK est complètement inutilisable".
Dualed

1
@dualed néanmoins Android passe à openjdk à partir d'Android 7. On dirait qu'ils préparent des améliorations importantes. venturebeat.com/2015/12/29/…
Johnny Doe

1
@JohnnyDoe Espérons que si Google passe à OpenJDK, ils fourniront en amont des correctifs de performance afin qu'il fonctionne bien sur ARM en dehors d'Android!
double du

95

Une différence clé à l'avenir est le calendrier de sortie et la politique de support.

OpenJDK

OpenJDK aura une version de fonctionnalité tous les 6 mois qui n'est prise en charge que jusqu'à la prochaine version de fonctionnalité. Il s'agit essentiellement d'un flux continu de versions destinées aux développeurs.

Oracle JDK

L'Oracle JDK est davantage destiné à un public d'entreprise qui valorise la stabilité. Il est basé sur l'une des versions d'OpenJDK mais bénéficie d'un support à long terme (LTS). L'Oracle JDK a des versions prévues tous les 3 ans.

entrez la description de l'image ici

Source: https://www.oracle.com/java/java9-screencasts.html?bcid=5582439790001&playerType=single-social&size=events


3
Les versions à long terme vous obligent à acheter un support commercial pour obtenir des mises à jour après 6 mois de la version java. Quelle est l'importance des rejets à long terme par rapport aux rejets à court terme? Les versions à court terme comme JDK 9/10 n'ont-elles pas de support commercial d'Oracle?
Andy Dufresne

@AndyDufresne pourquoi pensez-vous que vous devrez payer pour le support après seulement 6 mois? Je crois comprendre que le calendrier est à déterminer. Mais 6 mois semblent terriblement courts ... Je doute que nous puissions nous attendre à des mises à jour publiques pendant 5 ans, comme Java 8, mais je ne serais pas surpris s'il y avait des mises à jour publiques pendant 2 ou 3 ans. Référence - C'est par: oracle.com/technetwork/java/eol-135779.html .
The Gilbert Arenas Dagger

1
Le lien oracle mentionne "Par exemple, la version LTS pour Oracle JDK 11 (18,9 LTS) sera prise en charge pendant au moins 5 ans comme décrit dans la politique de support à vie d'Oracle". La politique a 3 niveaux de support, aucun d'entre eux ne semble être gratuit. Je mentionne également cela après avoir regardé le commentaire d'azul CTO ici - blog.takipi.com/java-11-will-include-more-than-just-features/… . Le principal objectif de cette nouvelle stratégie de publication est de ne pas perdre de temps à maintenir les anciennes versions. Si le support était gratuit, le modèle serait le même que jusqu'à présent.
Andy Dufresne

38

Pour Java 8 , Oracle JDK vs OpenJDK ma prise de différences clés:

  • OpenJDK est une implémentation open source de la plate-forme Java Standard Edition avec la contribution d'Oracle et de la communauté Java ouverte.

  • OpenJDK est publié sous licence GPL v2 dans laquelle Oracle JDK est autorisé sous le contrat de licence de code binaire Oracle.

  • En fait, le processus de construction d'Oracle JDK est construit à partir du code source d'OpenJDK. Il n'y a donc pas de différence technique majeure entre Oracle JDK et OpenJDK. Outre le code de base, Oracle JDK comprend, la mise en œuvre d'Oracle de Java Plugin et Java WebStart. Il comprend également des composants open source et open source tiers tels que rasterizer graphique et Rhino respectivement. OpenJDK Font Renderer et Oracle JDK Flight Recorder sont les principales différences notables entre Oracle JDK et OpenJDK.

  • Rockit était la JVM d'Oracle et à partir de Java SE 7, HotSpot et JRockit ont fusionné en une seule JVM. Alors maintenant, nous n'avons que la JVM HotSpot fusionnée disponible.
  • Il y a des cas où les gens affirment avoir rencontré des problèmes lors de l'exécution d'OpenJDK et qui ont été résolus lors du passage à Oracle JDK.
  • Twitter a son propre JDK.
  • Un logiciel comme Minecraft s'attend à ce qu'Oracle JDK soit utilisé. En fait, prévient.

Pour une liste complète des différences, veuillez consulter l'article source: Oracle JDK vs OpenJDK et Java JDK Development Process


4
Pour Android Studio, ce n'est plus vrai: une copie du dernier OpenJDK est livrée avec Android Studio 2.2 et supérieur, et c'est la version JDK que nous vous recommandons d'utiliser pour vos projets Android. Source: developer.android.com/studio/intro/studio-config#jdk
MKesper

«Un logiciel comme Minecraft s'attend à ce qu'Oracle JDK soit utilisé. En fait, prévient. " En fait, dans Ubuntu, le programme d'installation officiel de Mojang .deb utilise OpenJDK lors de l'installation du lanceur.
Moilleadóir

29

Les JVM Oracle et OpenJDK sont les mêmes et ont les mêmes fonctionnalités GC (à partir des dernières versions 10+). Avant la gestion d'Oracle de la JVM OpenJDK, il existait des différences concrètes qui rendaient cette ancienne JVM Openjdk presque inutilisable dans de nombreux environnements. Les JVM sont désormais les mêmes.

Les JDK qui incluent la JVM en tant que partie du Kit, diffèrent par les licences, le calendrier de publication et de maintenance et les bibliothèques de logiciels incluses dans le JDK. Pour moi, des différences cruciales signifient également des choses qui empêcheraient le code de s'exécuter s'il n'était pas présent. Pas seulement des licences.

diff --brief -r openjdk oraclejdk

Crucialement, les fichiers suivants sont manquants en plus d'un tas d'autres sur le JDK linux (Donc, si vous avez `` prétendu '' que ce code ne fonctionnait pas sur OpenJDK et le faisait sur OracleJDK pendant que vous utilisiez javafx, vous aviez raison):

Only in jdk-10.0.1/bin: javapackager
Only in jdk-10.0.1/bin: javaws
Only in jdk-10.0.1/bin: jcontrol
Only in jdk-10.0.1/bin: jmc
Only in jdk-10.0.1/bin: jweblauncher
Only in jdk-10.0.1/lib: ant-javafx.jar
Only in jdk-10.0.1/lib: deploy
Only in jdk-10.0.1/lib: deploy.jar
Only in jdk-10.0.1/lib: desktop
Only in jdk-10.0.1/lib: fontconfig.bfc
Only in jdk-10.0.1/lib: fontconfig.properties.src
Only in jdk-10.0.1/lib: fontconfig.RedHat.6.bfc
Only in jdk-10.0.1/lib: fontconfig.RedHat.6.properties.src
Only in jdk-10.0.1/lib: fontconfig.SuSE.11.bfc
Only in jdk-10.0.1/lib: fontconfig.SuSE.11.properties.src
Only in jdk-10.0.1/lib: fonts
Only in jdk-10.0.1/lib: javafx.properties
Only in jdk-10.0.1/lib: javafx-swt.jar
Only in jdk-10.0.1/lib: java.jnlp.jar
Only in jdk-10.0.1/lib: javaws.jar
Only in jdk-10.0.1/lib: jdk.deploy.jar
Only in jdk-10.0.1/lib: jdk.javaws.jar
Only in jdk-10.0.1/lib: jdk.plugin.jar
Only in jdk-10.0.1/lib: jfr
Only in jdk-10.0.1/lib: libavplugin-53.so
Only in jdk-10.0.1/lib: libavplugin-54.so
Only in jdk-10.0.1/lib: libavplugin-55.so
Only in jdk-10.0.1/lib: libavplugin-56.so
Only in jdk-10.0.1/lib: libavplugin-57.so
Only in jdk-10.0.1/lib: libavplugin-ffmpeg-56.so
Only in jdk-10.0.1/lib: libavplugin-ffmpeg-57.so
Only in jdk-10.0.1/lib: libbci.so
Only in jdk-10.0.1/lib: libcmm.so
Only in jdk-10.0.1/lib: libdecora_sse.so
Only in jdk-10.0.1/lib: libdeploy.so
Only in jdk-10.0.1/lib: libfxplugins.so
Only in jdk-10.0.1/lib: libglassgtk2.so
Only in jdk-10.0.1/lib: libglassgtk3.so
Only in jdk-10.0.1/lib: libglass.so
Only in jdk-10.0.1/lib: libgstreamer-lite.so
Only in jdk-10.0.1/lib: libjavafx_font_freetype.so
Only in jdk-10.0.1/lib: libjavafx_font_pango.so
Only in jdk-10.0.1/lib: libjavafx_font.so
Only in jdk-10.0.1/lib: libjavafx_iio.so
Only in jdk-10.0.1/lib: libjfxmedia.so
Only in jdk-10.0.1/lib: libjfxwebkit.so
Only in jdk-10.0.1/lib: libnpjp2.so
Only in jdk-10.0.1/lib: libprism_common.so
Only in jdk-10.0.1/lib: libprism_es2.so
Only in jdk-10.0.1/lib: libprism_sw.so
Only in jdk-10.0.1/lib: librm.so
Only in jdk-10.0.1/lib: libt2k.so
Only in jdk-10.0.1/lib: locale
Only in jdk-10.0.1/lib: missioncontrol
Only in jdk-10.0.1/lib: oblique-fonts
Only in jdk-10.0.1/lib: plugin.jar
Only in jdk-10.0.1/lib: plugin-legacy.jar
Only in jdk-10.0.1/lib/security: blacklist
Only in jdk-10.0.1/lib/security: public_suffix_list.dat
Only in jdk-10.0.1/lib/security: trusted.libraries
Only in openjdk-10.0.1: man`

5
Merci de signaler les vraies différences: le code qui ne fonctionne pas est une réalité. D'où vous êtes-vous basé diff?
Matthieu

19

Selon le blog Oracle , les versions d'Oracle JDK pour Java 11 et versions ultérieures

À partir de Java 11, Oracle fournira des versions JDK sous la licence open source GNU General Public License v2, avec l'exception Classpath (GPLv2 + CPE) , et sous une licence commerciale pour ceux qui utilisent Oracle JDK dans le cadre d'un produit ou service Oracle, ou qui ne souhaitent pas utiliser de logiciel open source. Cette combinaison de l'utilisation d'une licence open source et d'une licence commerciale remplace la licence historique « BCL », qui comportait une combinaison de conditions commerciales gratuites et payantes.

Différentes versions seront fournies pour chaque licence, mais ces versions sont fonctionnellement identiques à part quelques différences cosmétiques et de conditionnement, décrites en détail ci-dessous.

De la BCL à la GPL

La licence de code binaire pour les technologies Oracle Java SE («BCL») est la licence principale des technologies Oracle Java SE depuis plus d'une décennie. La BCL permet une utilisation sans frais de licence sous certaines conditions. Pour simplifier les choses, Oracle a commencé à fournir des versions OpenJDK sous licence open source à partir de Java 9, en utilisant le même modèle de licence que la plate-forme Linux. Si vous avez l'habitude d'obtenir gratuitement des binaires Oracle Java SE, vous pouvez simplement continuer à le faire avec les versions OpenJDK d'Oracle disponibles sur jdk.java.net . Si vous avez l'habitude d'obtenir des binaires Oracle Java SE dans le cadre d'un produit ou service commercial d'Oracle, vous pouvez continuer à obtenir les versions d'Oracle JDK via My Oracle Support (MOS) et d'autres emplacements.

Fonctionnellement identiques et interchangeables ...

Le JDK sous licence BCL d'Oracle contenait historiquement des «fonctionnalités commerciales» qui n'étaient pas disponibles dans les versions OpenJDK. Comme promis , cependant, au cours de la dernière année, Oracle a apporté ces fonctionnalités à la communauté OpenJDK, notamment:

Par conséquent, à partir de Java 11, les versions Oracle JDK et OpenJDK seront essentiellement identiques.

... mais avec quelques différences cosmétiques et d'emballage

Il reste un petit nombre de différences, certaines intentionnelles et esthétiques, d'autres simplement parce que plus de temps pour discuter avec les contributeurs d'OpenJDK est justifié.

  • Oracle JDK 11 émet un avertissement lors de l'utilisation de l'option -XX: + UnlockCommercialFeatures, tandis que dans OpenJDK, cette option génère une erreur. Cette option n'a jamais fait partie d'OpenJDK et il ne serait pas logique de l'ajouter maintenant, car il n'y a pas de fonctionnalités commerciales dans OpenJDK. Cette différence persiste afin de faciliter la migration des utilisateurs d'Oracle JDK 10 et versions antérieures vers Oracle JDK 11 et versions ultérieures.
  • Oracle JDK 11 peut être configuré pour fournir des données de journal d'utilisation à l' outil « Advanced Management Console », qui est un produit Oracle commercial distinct. Nous travaillerons avec d'autres contributeurs OpenJDK pour discuter de la façon dont ces données d'utilisation pourraient être utiles dans OpenJDK dans les futures versions, le cas échéant. Cette différence demeure principalement pour fournir une expérience cohérente aux clients Oracle jusqu'à ce que de telles décisions soient prises.
  • La commande javac --release se comporte différemment pour les cibles Java 9 et Java 10, car dans ces versions, le JDK Oracle contenait des modules supplémentaires qui ne faisaient pas partie des versions OpenJDK correspondantes:
    • javafx.base
    • javafx.controls
    • javafx.fxml
    • javafx.graphics
    • javafx.media
    • javafx.web
    • java.jnlp
    • jdk.jfr
    • jdk.management.cmm
    • jdk.management.jfr
    • jdk.management.resource
    • jdk.packager.services
    • jdk.snmp

Cette différence demeure afin de fournir une expérience cohérente pour des types spécifiques d'utilisation héritée. Ces modules sont désormais disponibles séparément dans le cadre d' OpenJFX , sont maintenant à la fois dans OpenJDK et Oracle JDK car ce sont des fonctionnalités commerciales qu'Oracle a contribué à OpenJDK (par exemple, Flight Recorder), ou ont été supprimés d'Oracle JDK 11 (par exemple, JNLP) .

  • La sortie des commandes java --version et java -fullversion distinguera les builds JDK Oracle des builds OpenJDK, afin que les équipes de support puissent diagnostiquer tout problème qui pourrait exister. Plus précisément, l'exécution de java --version avec une génération Oracle JDK 11 se traduit par:

java 11 2018-09-25

Environnement d'exécution Java (TM) SE 18.9 (build 11 + 28)

Java HotSpot (TM) 64-Bit Server VM 18.9 (build 11 + 28, mode mixte)

Et pour une version OpenJDK 11:

version openjdk "11" 2018-09-25

Environnement d'exécution OpenJDK 18.9 (build 11 + 28)

Serveur OpenJDK 64 bits VM 18.9 (build 11 + 28, mode mixte)

  • Oracle JDK a toujours exigé que les fournisseurs de chiffrement tiers soient signés par un certificat connu. Le cadre de cryptographie d'OpenJDK a une interface cryptographique ouverte, ce qui signifie qu'il ne restreint pas les fournisseurs qui peuvent être utilisés. Oracle JDK 11 continuera d' exiger une signature valide et les versions Oracle OpenJDK continueront à autoriser l'utilisation d'une signature valide ou d'un fournisseur de cryptographie tiers non signé.
  • Oracle JDK 11 continuera à inclure des installateurs, une image de marque et un package JRE pour une expérience cohérente avec les anciennes utilisations de bureau. Les versions Oracle OpenJDK sont actuellement disponibles sous forme de fichiers zip et tar.gz, tandis que d'autres formats de distribution sont à l'étude.

10

Une liste des quelques différences cosmétiques et de conditionnement restantes entre Oracle JDK 11 et OpenJDK 11 se trouve dans ce billet de blog:

https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

En bref:

  • Oracle JDK 11 émet un avertissement lors de l'utilisation de l'option -XX: + UnlockCommercialFeatures,
  • il peut être configuré pour fournir des données de journal d'utilisation à l'outil "Advanced Management Console",
  • il a toujours exigé que les fournisseurs de cryptographie tiers soient signés par un certificat connu,
  • il continuera à inclure les installateurs, l'image de marque et l'emballage JRE,
  • tandis que la commande javac --release se comporte légèrement différemment pour les cibles Java 9 et Java 10, et
  • la sortie des commandes java --version et java -fullversion distinguera les versions Oracle JDK des versions OpenJDK.

2
J'ai remarqué que la plupart de vos réponses portaient une signature. Je les ai édités. Veuillez lire Les slogans et signatures sont-ils interdits? et stackoverflow.com/help/behavior (en particulier la section "N'utilisez pas de signature, de slogans ou de salutations.")
Mark Rotteveel

7
  1. Oracle fournira des versions tous les trois ans, tandis que OpenJDK sera publié tous les six mois.
  2. Oracle fournit un support à long terme pour ses versions. D'un autre côté, OpenJDK prend en charge les modifications apportées à une version uniquement jusqu'à la publication de la version suivante.
  3. Oracle JDK était sous licence Oracle Binary Code License Agreement, tandis qu'OpenJDK a la GNU General Public License (GNU GPL) version 2 avec une exception de liaison.
  4. Le produit Oracle possède des fonctionnalités Flight Recorder, Java Mission Control et Application Class-Data Sharing, tandis qu'OpenJDK a la fonctionnalité Font Renderer.
  5. Oracle JDK est entièrement développé par Oracle Corporation tandis que l'OpenJDK est développé par Oracle, OpenJDK et la communauté Java. Cependant, des sociétés de premier plan comme Red Hat, Azul Systems, IBM, Apple Inc., SAP AG participent également activement à son développement.

De Java 11, passez à un grand changement

Oracle changera sa licence «BCL» historique avec une combinaison d'une licence open source et commerciale

  • Le kit Oracle pour Java 11 émet un avertissement lors de l'utilisation de l'option -XX: + UnlockCommercialFeatures, tandis que dans les versions OpenJDK, cette option entraîne une erreur
  • Oracle JDK propose une configuration pour fournir des données de journal d'utilisation à l'outil «Advanced Management Console»
  • Oracle a toujours exigé que les fournisseurs de cryptographie tiers soient signés par un certificat connu, tandis que le cadre de cryptographie d'OpenJDK a une interface cryptographique ouverte, ce qui signifie qu'il n'y a aucune restriction quant aux fournisseurs pouvant être utilisés.
  • Oracle JDK 11 continuera à inclure les programmes d'installation, la marque et le package JRE, tandis que les versions OpenJDK sont actuellement disponibles sous forme de fichiers zip et tar.gz
  • La commande javac –release se comporte différemment pour les cibles Java 9 et Java 10 en raison de la présence de certains modules supplémentaires dans la version d'Oracle
  • La sortie des commandes java –version et java -fullversion distinguera les builds d'Oracle des builds OpenJDK


Mise à jour: 25 août 2019



entrez la description de l'image ici

pour plus de détails oracle-vs-openjdk



5

Outre la différence de licence évidente, la principale différence entre OpenJDK et OracleJDK 11 réside dans les mises à jour de stabilité et de performances.

Source: https://www.youtube.com/watch?v=Adv9--6IcQI&t=385

Tous les 6 mois, les deux bases de code seront synchronisées. Mais pendant la fenêtre de 6 mois, OpenJDK ne recevra que des mises à jour de sécurité tandis qu'OracleJDK recevra des mises à jour supplémentaires de stabilité et de performances.

Étant donné que les versions de mise à jour ne se produisent que tous les 3 mois pour OpenJDK et OracleJDK, cela signifie que vous manquez (au plus) 3 mois de correctifs jusqu'à la sortie de la prochaine version majeure et la mise à niveau. Cependant, si vous choisissez de vous en tenir aux versions LTS, une licence commerciale commence à avoir plus de sens.


3

Également pour Java 8, une référence de performances intéressante pour l'application REST Spring Boot réactive (non bloquante) hébergée sur diverses machines virtuelles Java par AMIS Technology Blog a été publiée en novembre 2018, montrant que, entre autres différences:

  • OpenJDK a une utilisation du processeur plus élevée que OracleJDK,
  • OpenJDK a un temps de réponse légèrement inférieur à OracleJDK,
  • OpenJDK a une utilisation de mémoire supérieure à OracleJDK,

Pour plus de détails, veuillez consulter l'article source.

Bien sûr, YMMV, ce n'est là qu'une des références.


3

Ma compréhension est qu'Oracle JDK ne peut pas être utilisé en production, donc je ne peux pas l'utiliser légalement (sans payer), pour l'application web que je crée pour mon entreprise. Je dois utiliser OpenJDK. S'il vous plait corrigez moi si je me trompe! De cet article .

Depuis Java 11, Oracle JDK est limité aux environnements de développement et de test. Les JDK Oracle ne peuvent être utilisés en production que si vous achetez le support commercial. Au lieu de cela, Oracle fournira gratuitement des versions Java basées sur OpenJDK qui peuvent être utilisées en production. Mais pour l'Oracle JDK officiel, la véritable feuille de route ressemblera à ceci:

MISE À JOUR: je me trompe. Je peux utiliser Oracle JDK gratuitement mais je n'aurai pas de mises à jour de sécurité après 6 mois et nous devrons assumer le risque. Regardez la section d'article liée ci-dessus "Que signifie le nouveau train de versions pour mon entreprise?".


Cela peut ne plus être vrai à partir du JDK 13. Il existe une nouvelle licence pour Oracle JDK, selon Oracle: "La nouvelle licence autorise sans frais certains usages, tels que l’utilisation personnelle et le développement - mais d’autres utilisations autorisées par les licences Oracle JDK antérieures peuvent ne plus être disponibles ". Voir oracle.com/downloads/licenses/javase-license1.html .
AL Flanagan

Je voulais juste savoir, la version actuelle d'Oracle JDK8U241 est gratuite pour une utilisation en production?
Nirav Shah
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.