Freie Java-Implementierung
# Freie Java-Implementierung

Eine freie Java-Implementierung ist eine Implementierung der Java-Plattform als freie Software.

## Geschichte

Mit der Java-Technik als wichtiger Software-Plattform (siehe Java-Plattform), auf der auch zahlreiche freie Software aufbaut, wurden die lange Zeit zur Ausführung notwendigen unfreien Implementierungen der Programmiersprache Java als ethisch problematische Lücke im Freie-Software-Ökosystem gesehen – Richard Stallman und die Free Software Foundation (FSF) sprachen von der „Java-Falle“. Daher bestand das Bedürfnis nach freien Java-Implementierungen, deren Umsetzung mit hoher Priorität von der FSF verfolgt wurde und Dinge wie die freie Implementierung der Standardklassenbibliotheken GNU Classpath und den GNU Compiler for Java (GCJ), der auch den GNU Interpreter for Java (GIJ) enthält, hervorbrachten.

Als vielleicht erste freie Implementierung wesentlicher Teile der Java-Plattform ist der Java-Compiler guavac zu nennen, der noch vor November 1995 begonnen wurde. 2005 sollte mit Harmony versucht werden, die Entwicklungsbemühungen um freie Java-Implementierungen in einem Projekt zu vereinigen. Obwohl der große Schulterschluss nicht gelang, lebt das Projekt unter dem Dach der Apache Software Foundation weiter und hat eine vollständige Implementierung hervorgebracht.

Mit der Veröffentlichung der offiziellen Implementierungen durch den Hersteller Sun Microsystems im Jahr 2006 löste sich diese Situation nach einigen kleineren Hürden endgültig auf und wurde die Familie freier Java-Implementierungen sowie die Freie-Software-Welt insgesamt durch ein großes und wichtiges Paket Software ergänzt.

Als freie Java-Implementierungen sind daraus OpenJDK als Nachfolger des Java Development Kit (JDK) und viele weitere Bestandteile hervorgegangen. Wichtige Zweige der OpenJDK-Entwicklung waren bzw. sind auch immer noch die Versionen des IcedTea-Projektes. Außer diesen gibt es noch Kaffe, die nun als besonders schlanke, schnelle alternative Laufzeitumgebung weiterexistiert, die selber wiederum in Java geschriebene Jikes RVM, die extrem kleine JamVM, das für Mono entwickelte IKVM.NET und das für das Betriebssystem Bluebottle geschriebene Jaos.

## Spezialisierte Implementierungen

Weiterhin gibt es noch eine Vielzahl spezialisierter Implementierungen.

Für tragbare Geräte gibt es SuperWaba, Squawk und die Dalvik Virtual Machine von Android, Mysaifu JVM als die einzige aktiv weiterentwickelte freie Java-SE-kompatible JVM für PocketPC. Für spezielle Hardware-Plattformen gibt es für Atmel-AVR-ATmega8-Mikrocontroller die NanoVM, leJOS für Lego Mindstorms und Wonka VM und deren Nachfolgerin Mika VM für eingebettete Geräte.

CACAO unterstützt etliche Plattformen, wobei es mit seinen durch JIT-Kompilierung schnellen Ausführungsgeschwindigkeiten wohl auf einigen die schnellste verfügbare Java-Implementierung darstellt.

Weiterhin existieren auch Betriebssysteme, die in Java programmiert wurden, wie z. B. JX (Betriebssystem) oder JNode.

