Maison  >  Article  >  Java  >  Java est-il open source ?

Java est-il open source ?

(*-*)浩
(*-*)浩original
2019-05-31 11:26:077460parcourir

Lors de la conférence JavaOne du 13 novembre 2006, Sun a annoncé qu'il allait éventuellement ouvrir Java en source ouverte, et que dans plus d'un an, il publierait progressivement diverses parties du JDK sous GPL v2 (GNU General Public License v2). le code source est divulgué dans le cadre de l'accord et l'organisation OpenJDK est créée pour gérer de manière indépendante ces codes sources. À l'exception d'une très petite quantité de code propriétaire (Encumbered Code, dont Sun lui-même n'a pour la plupart aucune autorité en matière d'open source), OpenJDK inclut presque tout le code de Sun JDK. Le directeur qualité d'OpenJDK a dit un jour que dans JDK 1.7, Sun Except. pour l'annotation de copyright dans l'en-tête du fichier de code, les codes de JDK et OpenJDK sont fondamentalement les mêmes, donc OpenJDK 7 et Sun JDK 1.7 sont essentiellement des produits développés à partir de la même base de code.

Java est-il open source ?

Le 13 novembre 2006, Sun Microsystems a officiellement ouvert Java. Le fait que le code source de Java était accessible dès le premier jour était une stratégie qui a aidé Java à favoriser l'établissement de la plate-forme au cours de ses premières années.

James Gosling, le père de Java, a déclaré que son intention d'ouvrir le code source est de permettre à la communauté de contribuer à l'analyse de la sécurité, au rapport de bogues, à l'amélioration des performances et à la compréhension des cas distants. La licence originale utilisée par Java autorisait l'utilisation interne du code source mais pas la distribution.

IBM avait alors demandé de faire don de Java à l'Apache Software Foundation et de le distribuer sous licence Apache, mais Sun a finalement décidé d'ouvrir Java sous licence GPL. La licence GPL nécessite que les versions dérivées soient distribuées publiquement. Gosling a déclaré que cela permettrait à Java de mieux s'adapter à la communauté open source. Sun a été racheté par Oracle en 2010, et Java est également tombé entre les mains d'Oracle, Oracle menant l'évolution de Java.

Après la sortie du JDK 1.6, en raison de l'augmentation de la complexité du code, de l'open source du JDK, du développement de JavaFX, de la crise économique et de l'acquisition de Sun, Sun a dépensé beaucoup de ressources sur des choses autres que le développement du JDK et du JDK. les mises à jour n'étaient plus disponibles. Maintenir la vitesse de développement consistant à publier une version majeure tous les deux ans. JDK 1.6 a publié jusqu'à présent un total de 37 versions de mise à jour. La dernière version est Java SE 6 Update 37, publiée le 16 octobre 2012.

OpenJDK était à l'origine une version open source de l'environnement de développement Java (JDK) construit par SunMicrosystems pour la plateforme Java. Il est entièrement gratuit et open source. Sun Microsystems a annoncé lors de la conférence JavaOne 2006 qu'il ouvrirait le code Java open source et a officiellement publié OpenJDK le 15 avril 2009. Oracle a repris le projet après avoir acquis SunMicrosystem en 2010.

Java est divisé en openjdk et sun/oracle JDK pendant le processus de publication.

Les différences entre JDK et OpenJDK peuvent être résumées comme suit :

Différences dans les accords de licence :

openjdk est publié sous le protocole GPL V2, tandis que JDK est publié en utilisant JRL. Bien que les deux protocoles soient open source, la différence d'utilisation est que GPL V2 autorise une utilisation commerciale, tandis que JRL autorise uniquement une utilisation à des fins de recherche personnelle.

OpenJDK ne contient pas de fonction de déploiement (déploiement) :

Les fonctions de déploiement incluent : le plug-in de navigateur, Java Web Start et le panneau de configuration Java, ces fonctions ne se trouvent pas dans Openjdk.

Le code source d'OpenJDK est incomplet :

Il est facile de penser à cela. Dans Openjdk qui adopte le protocole GPL, une partie du code source de sun jdk ne peut pas être ouverte sur openjdk en raison des droits de propriété. Le plus important est que la partie est le code de la partie SNMP du composant facultatif dans JMX. Par conséquent, ces codes sources qui ne peuvent pas être ouverts sont transformés en plug-ins à utiliser lors de la compilation d'OpenJDK. Vous pouvez également choisir de ne pas utiliser de plug-ins. Icedtea a développé du code source (OpenJDK6) avec les mêmes fonctions pour ces parties incomplètes, rendant OpenJDK plus complet.

Une partie du code source a été remplacée par du code open source :

En raison de problèmes de droits de propriété, de nombreux codes sources dont les droits de propriété ne sont pas SUN ont été remplacés par des codes open source avec les mêmes fonctions , tels que les moteurs de rastérisation de polices, utilisez plutôt Free Type.

openjdk ne contient que le JDK le plus rationalisé :

OpenJDK ne contient pas d'autres packages logiciels, tels que Rhino Java DB JAXP..., et les packages logiciels qui peuvent être séparés sont également séparés comme autant que possible, mais la plupart d'entre eux sont des logiciels gratuits que vous pouvez télécharger et rejoindre vous-même.

Impossible d'utiliser la marque Java :

Ceci est facile à comprendre sur la machine sur laquelle openjdk est installé, saisir "java -version" affiche openjdk, mais s'il s'agit d'openjdk utilisant le patch Icedtea. , il affiche Java. (Non vérifié)

En bref, il existe encore de nombreux éléments non libres dans le système Java, et le développement du code source n'est pas assez approfondi. J'espère qu'Oracle pourra rendre JCP plus libre et ouvert, ce qui est le cas de tout Java. les communautés espèrent.

À ce stade, je comprends fondamentalement pourquoi il existe un différend entre l'open source et le fermé en Java, et je comprends également les raisons des malentendus. Personnellement, je pense que Java est toujours open source, mais le degré d'open source n'est pas à 100 %.

La JVM incluse dans Oracle/Sun JDK est HotSpotVM. Elle possède très, très peu de fonctions qui ne sont pas dans OpenJDK, et ces parties se trouvent dans la base de code interne d'Oracle. Aucune de ces parties privées ne touche aux fonctionnalités de base de la JVM. Par conséquent, Oracle/Sun JDK et OpenJDK utilisent en fait la même base de code.

Du point de vue d'un employé interne d'Oracle, lorsqu'il souhaite créer OracleJDK, il doit également d'abord consulter OpenJDK depuis http://hg.openjdk.java.net, puis depuis le code interne d'Oracle. base Extrayez les parties privées, placez-les dans un répertoire spécifique sous le code OpenJDK et construisez.

Il convient de noter qu'Oracle JDK ne publie que des packages d'installation binaires, tandis qu'OpenJDK ne publie que le code source

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:qu'est-ce que le champ JavaArticle suivant:qu'est-ce que le champ Java