Kostenlose Java-Implementierungen - Free Java implementations

  (Umgeleitet von Deterministic Parallel Java )

Kostenlose Java-Implementierungen sind Softwareprojekte , die die Java- Technologien von Oracle implementieren und unter Lizenzen für freie Software vertrieben werden , sodass sie freie Software sind . Sun hat den größten Teil seines Java-Quellcodes im Mai 2007 als freie Software veröffentlicht, sodass er nun fast als kostenlose Java-Implementierung angesehen werden kann. Java-Implementierungen umfassen Compiler, Laufzeiten, Klassenbibliotheken usw. Befürworter von freier und Open-Source-Software bezeichnen freie oder Open-Source- Java-Virtual-Machine- Software als freie Laufzeiten oder freie Java-Laufzeiten .

Einige Befürworter dieser Bewegung ziehen es vor, den Begriff "Java" nicht zu verwenden, da damit Markenprobleme verbunden sind. Obwohl es sich um eine "freie Java-Bewegung" handelt, wird der Begriff "freie Java-Laufzeiten" von ihnen vermieden.

Mitte der 1990er bis 2006

Das erste kostenlose Projekt, das wesentliche Teile der Java-Plattformfunktionalität anbot, war wahrscheinlich guavac, das einige Zeit vor November 1995 begann.

Seitdem hat die Bewegung für freie Software andere Java-Compiler entwickelt, insbesondere den GNU Compiler für Java . Andere sind der Eclipse Java Compiler (ECJ), der von der Eclipse Foundation verwaltet wird , und Jikes , der nicht mehr aktiv verwaltet wird. Seit der Version 4.3 der GNU Compiler Collection verwendet GCJ (sein Java-Compiler) das ECJ- Parser- Frontend zum Parsen von Java.

Beispiele für freie Laufzeitumgebungen sind Kaffe , SableVM und gcj .

GNU Classpath ist die wichtigste freie Software - Bibliothek Klasse für Java. Die meisten freien Laufzeiten verwenden GNU Classpath als Klassenbibliothek.

Im Mai 2005 wurde Apache Harmony angekündigt. Das Projekt entschied sich jedoch für die Apache-Lizenz , die zu diesem Zeitpunkt nicht mit allen vorhandenen kostenlosen Java-Implementierungen kompatibel war.

Ein weiteres Ereignis im Mai 2005 war die Ankündigung, dass OpenOffice.org 2.0 von Java-Funktionen abhängen würde, die freie Software-Implementierungen nicht bieten könnten. Nach Kontroversen hat OpenOffice.org eine Richtlinie verabschiedet, nach der mit kostenlosen Java-Implementierungen gearbeitet werden muss.

Zu den bemerkenswerten Anwendungen, die bereits vor November 2006 mit Java-Implementierungen für freie Software gearbeitet haben, gehören OpenOffice.org und Vuze , die beide beim Kompilieren mit GCJ funktionieren.

Ankündigung von Sun im November 2006

Am 13. November 2006 veröffentlichte Sun seinen Compiler javac unter der GNU General Public License .

Seit September 2007 hat Sun neben javac den Code von HotSpot (der virtuellen Maschine ) und fast der gesamten Java-Klassenbibliothek als freie Software veröffentlicht.

Nach dem Versprechen, im ersten Halbjahr 2007 ein vollständig erstellbares JDK zu veröffentlichen, das fast vollständig auf freiem und Open Source-Code basiert, veröffentlichte Sun am 8. Mai 2007 den vollständigen Quellcode der Klassenbibliothek unter der GPL, mit Ausnahme einiger begrenzter Teile Lizenziert von Sun von Drittanbietern, die nicht wollten, dass ihr Code unter einer Lizenz für freie Software veröffentlicht wird. Sun hat erklärt, dass es beabsichtigt, die Teile, die proprietär und Closed Source bleiben, durch alternative Implementierungen zu ersetzen und die Klassenbibliothek vollständig frei und Open Source zu machen. Da das JDK etwas belasteten Code enthält , wird Sun diesen Code weiterhin in kommerziellen Releases verwenden, bis er durch voll funktionsfähige kostenlose und Open-Source-Alternativen ersetzt wird.

Nach der Code-Veröffentlichung im Mai 2007

Ab Mai 2008 ist die SNMP- Implementierung der einzige Teil der Klassenbibliothek, der proprietär bleibt (4% ab Mai 2007 für OpenJDK 7 und weniger als 1% ab Mai 2008 für OpenJDK 6) .

Seit der ersten Veröffentlichung im Mai 2007 hat Sun Microsystems mit Hilfe der Community fast den gesamten belasteten Code als freie Software veröffentlicht (oder durch Alternativen für freie Software ersetzt):

  • Der gesamte Audio-Engine-Code, einschließlich des Software-Synthesizers , wurde als Open Source veröffentlicht. Der Closed-Source-Software-Synthesizer wurde durch einen neuen Synthesizer ersetzt, der speziell für OpenJDK entwickelt wurde und Gervill heißt.
  • Alle in der Klassenbibliothek verwendeten Kryptografieklassen wurden als freie Software veröffentlicht.
  • FreeType hat den Code ersetzt, der Schriftarten skaliert und rastert .
  • LittleCMS hat das native Farbmanagementsystem ersetzt. Das JDK enthält eine steckbare Ebene, sodass die kommerzielle Version das alte Farbmanagementsystem und OpenJDK LittleCMS verwenden kann.
  • Der im phoneME- Projekt verwendete Open-Source-Renderer Pisces hat den Anti-Aliasing- Grafik- Rasterizer- Code ersetzt. Dieser Code ist voll funktionsfähig, benötigt jedoch noch einige Leistungsverbesserungen.
  • Das JavaScript- Plugin war Open-Source ( die JavaScript-Engine selbst war von Anfang an Open-Source).

Aufgrund dieser zuvor belasteten Komponenten war es nicht möglich, OpenJDK nur mit freien Softwarekomponenten zu erstellen . Um dies zu tun, bevor die gesamte Klassenbibliothek freigegeben wird, und um OpenJDK in Fedora Core und anderen kostenlosen Linux- Distributionen zu bündeln , hat Red Hat ein Projekt namens IcedTea gestartet . Grundsätzlich handelt es sich um einen OpenJDK / GNU Classpath- Hybrid, mit dem OpenJDK nur mit freier Software gebootet werden kann.

Ab März 2008 wurde die Fedora 9- Distribution mit OpenJDK 6 anstelle der IcedTea-Implementierung von OpenJDK 7 veröffentlicht. Einige der angegebenen Gründe für diese Änderung sind:

  • Sun hat die meisten Belastungen ersetzt, für die IcedTea Ersatz bereitgestellt hat (weniger als 1% des belasteten Codes verbleibt in der Klassenbibliothek , und dieser Code ist zum Ausführen von OpenJDK nicht erforderlich).
  • OpenJDK 6 war ein stabiler Zweig, während OpenJDK 7 instabil war und erst 2009 eine stabile Version liefern sollte.
  • Sun hat die Marke OpenJDK für die Verwendung in Fedora lizenziert.

Im Juni 2008 wurde bekannt gegeben, dass IcedTea 6 (als Paketversion von OpenJDK unter Fedora 9 ) die Tests des Technology Compatibility Kit bestanden hat und behaupten kann, eine vollständig kompatible Java 6-Implementierung zu sein.

Im September 2013 veröffentlichte Azul Systems Zulu, eine kostenlose Open-Source-Version von OpenJDK für Windows Server und die Microsoft Azure Cloud. In späteren Versionen wurde die Unterstützung für Mac OS X , mehrere Versionen von Linux und die Java Platform, Standard Edition Version 8 hinzugefügt . Zulu ist mit dem OpenJDK Community Technology Compatibility Kit für Java SE 8, 7 und 6 zertifiziert .

Amazon hat Amazon Corretto als kostenlose , plattformübergreifende und produktionsbereite Distribution des Open Java Development Kit veröffentlicht. Es wird unter GPL v2 mit der Klassenpfadausnahme veröffentlicht . Langzeit-Support-Versionen von Java 8 und Java 11 sind verfügbar. Es wurde erstmals am 31. Januar 2019 veröffentlicht.

Siehe auch

Verweise

Externe Links