Heim >Java >javaLernprogramm >Ist Java Open Source?
Auf der JavaOne-Konferenz am 13. November 2006 kündigte Sun an, dass es schließlich Java als Open Source veröffentlichen und in mehr als einem Jahr nach und nach verschiedene Teile des JDK unter GPL v2 (GNU General Public License v2) veröffentlichen werde Der Quellcode wird im Rahmen der Vereinbarung offengelegt und die OpenJDK-Organisation wird gegründet, um diese Quellcodes unabhängig zu verwalten. Mit Ausnahme einer sehr kleinen Menge proprietären Codes (Encumbered Code, für den Sun selbst größtenteils keine Open-Source-Befugnis hat) enthält OpenJDK fast den gesamten Code von Sun JDK. Der Qualitätsdirektor von OpenJDK sagte einmal, dass in JDK 1.7 Sun außer Für die Copyright-Anmerkung im Codedatei-Header sind die Codes von JDK und OpenJDK grundsätzlich gleich, sodass OpenJDK 7 und Sun JDK 1.7 im Wesentlichen Produkte sind, die auf derselben Codebasis entwickelt wurden.
Am 13. November 2006 veröffentlichte Sun Microsystems offiziell Java als Open Source. Die Tatsache, dass der Quellcode von Java vom ersten Tag an zugänglich war, war eine Strategie, die Java in seinen Anfangsjahren dabei half, die Etablierung der Plattform voranzutreiben.
James Gosling, der Vater von Java, sagte, dass ihre Absicht, den Quellcode zu öffnen, darin besteht, der Community die Möglichkeit zu geben, bei der Sicherheitsanalyse, Fehlerberichterstattung, Leistungsverbesserung und dem Verständnis von Remote-Fällen zu helfen. Die von Java verwendete Originallizenz erlaubte die interne Nutzung des Quellcodes, jedoch keine Verbreitung.
IBM rief damals dazu auf, Java an die Apache Software Foundation zu spenden und es unter der Apache-Lizenz zu verbreiten, aber Sun entschied sich letztendlich dafür, Java als Open-Source-Software unter der GPL-Lizenz zu veröffentlichen. Die GPL-Lizenz erfordert, dass abgeleitete Versionen öffentlich verbreitet werden. Gosling sagte, dies würde es Java ermöglichen, sich besser an die Open-Source-Community anzupassen. Sun wurde 2010 von Oracle übernommen und auch Java fiel in die Hände von Oracle, wobei Oracle die Entwicklung von Java anführte.
Nach der Veröffentlichung von JDK 1.6 hat Sun aufgrund der zunehmenden Codekomplexität, JDK Open Source, der Entwicklung von JavaFX, der Wirtschaftskrise und der Übernahme von Sun viele Ressourcen für andere Dinge als die JDK-Entwicklung und JDK ausgegeben Es waren keine Updates mehr verfügbar. Behalten Sie die Entwicklungsgeschwindigkeit bei, bei der alle zwei Jahre eine Hauptversion veröffentlicht wird. JDK 1.6 hat bisher insgesamt 37 Update-Versionen veröffentlicht. Die neueste Version ist Java SE 6 Update 37, das am 16. Oktober 2012 veröffentlicht wurde.
OpenJDK war ursprünglich eine Open-Source-Version der Java-Entwicklungsumgebung (JDK), die von SunMicrosystems für die Java-Plattform entwickelt wurde. Es ist völlig kostenlos und Open Source. Sun Microsystems kündigte auf der JavaOne-Konferenz 2006 an, Java-Code als Open-Source-Lösung anzubieten, und veröffentlichte OpenJDK am 15. April 2009 offiziell. Oracle übernahm das Projekt nach der Übernahme von SunMicrosystem im Jahr 2010.
Java wird während des Veröffentlichungsprozesses in openjdk und sun/oracle JDK unterteilt.
Die Unterschiede zwischen JDK und OpenJDK lassen sich wie folgt zusammenfassen:
Unterschiede in den Lizenzvereinbarungen:
openjdk wird unter dem GPL V2-Protokoll veröffentlicht, während JDK veröffentlicht wird mit JRL. Obwohl beide Protokolle Open Source sind, besteht der Unterschied in der Nutzung darin, dass GPL V2 die kommerzielle Nutzung erlaubt, während JRL nur die private Forschungsnutzung erlaubt.
OpenJDK enthält keine Bereitstellungsfunktion (Bereitstellung):
Zu den Bereitstellungsfunktionen gehören: Browser-Plugin, Java Web Start und Java Control Panel. Diese Funktionen sind in Openjdk nicht zu finden.
Der OpenJDK-Quellcode ist unvollständig:
Das kann man sich leicht vorstellen: In Openjdk, das das GPL-Protokoll verwendet, kann ein Teil des Quellcodes von Sun JDK aufgrund von Eigentumsrechten nicht für OpenJDK geöffnet werden Das wichtigste Problem ist der Code des SNMP-Teils der optionalen Komponente in JMX. Daher werden diese Quellcodes, die nicht geöffnet werden können, in einen Plug umgewandelt, der beim Kompilieren von OpenJDK verwendet wird. Sie können sich auch dafür entscheiden, keinen Plug zu verwenden. Icedtea hat für diese unvollständigen Teile Quellcode (OpenJDK6) mit denselben Funktionen entwickelt, wodurch OpenJDK vollständiger wird.
Ein Teil des Quellcodes wurde durch Open-Source-Code ersetzt:
Aufgrund von Eigentumsrechtsproblemen wurden viele Quellcodes, deren Eigentumsrechte nicht bei SUN liegen, durch einige Open-Source-Codes mit denselben Funktionen ersetzt , wie z. B. Font-Rasterisierungs-Engines, verwenden Sie stattdessen Free Type.
openjdk enthält nur das optimierteste JDK:
OpenJDK enthält keine anderen Softwarepakete wie Rhino Java DB JAXP..., und die Softwarepakete, die getrennt werden können, werden auch als getrennt so viel wie möglich, aber die meisten davon sind kostenlose Software, die Sie herunterladen und selbst beitreten können.
Die Java-Marke kann nicht verwendet werden:
Dies ist leicht zu verstehen. Auf dem Computer, auf dem openjdk installiert ist, wird bei Eingabe von „java -version“ openjdk angezeigt, wenn es sich jedoch um openjdk handelt, wird der Icedtea-Patch verwendet , es wird Java angezeigt. (Unverifiziert)
Kurz gesagt, es gibt immer noch viele unfreie Elemente im Java-System und die Entwicklung des Quellcodes ist nicht gründlich genug. Ich hoffe, dass Oracle JCP freier und offener machen kann, was alles in Java der Fall ist Gemeinden hoffen.
An diesem Punkt verstehe ich grundsätzlich, warum es in Java einen Streit zwischen Open Source und Closed Source gibt, und verstehe auch die Gründe für Missverständnisse. Ich persönlich bin der Meinung, dass Java immer noch Open Source ist, aber der Grad der Open Source ist nicht 100 %.
Die in Oracle/Sun JDK enthaltene JVM ist HotSpotVM. HotSpot VM verfügt über sehr, sehr wenige Funktionen, die nicht in OpenJDK enthalten sind, und diese Teile befinden sich in der internen Codebasis von Oracle. Keiner dieser privaten Teile berührt die Kernfunktionalität der JVM. Daher verwenden Oracle/Sun JDK und OpenJDK tatsächlich dieselbe Codebasis.
Aus der Sicht eines internen Oracle-Mitarbeiters muss er, wenn er OracleJDK erstellen möchte, zuerst OpenJDK von http://hg.openjdk.java.net und dann OpenJDK von Oracle ausprobieren Interne Codebasis Überprüfen Sie die privaten Teile, legen Sie sie in einem bestimmten Verzeichnis unter dem OpenJDK-Code ab und erstellen Sie sie.
Es ist erwähnenswert, dass Oracle JDK nur binäre Installationspakete veröffentlicht, während OpenJDK nur Quellcode veröffentlicht
Das obige ist der detaillierte Inhalt vonIst Java Open Source?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!