Open Source im professionellen Einsatz
Linux-Magazin Online Artikel/
Vadim Andrushchenko, Fotolia

Vadim Andrushchenko, Fotolia

Wegweiser für Java unter Linux

Kaffeepause

24.03.2009

Für die freie Programmiersprache Java von Sun Microsystems hat ein Programmierer die Qual der Wahl für Umgebungen und Bibliotheken. Dieser Artikel stellt die wichtigsten Java-Tools und -Projekte vor.

874

Freie Java-Software auf dem freien Betriebssystem Linux zu verwenmden, sollte einfach sein. Bis vor Kurzem stand jedoch jeder Open-Source-Fan vor dem Dilemma, dass Suns hauseigene Java-Umgebung zwar mit anderen Sun-Produkten Kompatibilität garantierte, jedoch nicht quelloffen war. Freie Java-Implementierungen hingegen gab es zu Dutzenden, ob Doktorarbeit oder Großprojekt mit Roadmap und bezahlter Belegschaft. Ob sie aber Suns Technology Compatibility Kit (TCK) genügten, der Kompatibilitäts-Testsuite des Java-Eigners, blieb manchmal offen.

Diese Situation änderte sich seit Ende 2006, als Sun begann, das Java Development Kit (JDK) unter eine freie Lizenz zu stellen (Open JDK). Einige Teile blieben jedoch unter Verschluss, da sie anderen Unternehmen gehörten. Diese Lücken schloss das Icedtea-Projekt für JDK 5 und 6, indem es passende Teile der GNU Classpath integrierte (Abbildung 1). Sun entließ außerdem die virtuelle Maschine namens Hotspot in die GPL-Freiheit, womit möglich wurde, Java in ein freies und doch TCK-geprüften System zu pflanzen. Darüber hinaus baut die Open-Source-Community auch ohne offiziellen Segen munter an weiteren Hilfsmitteln.

Abbildung 1: Die GNU-Bibliothek Classpath stopfte die Lücken in Suns Offenlegung der Quellen, wodurch zum Beispiel Forschungsprojekte sich ohne Lizenzschranken mit Java beschäftigen können.

JVM + Bibliotheken = JRE

Grundsätzlich muss ein System, das Java verarbeiten soll, aus Java-Quelltext den Java-Bytecode erzeugen und verarbeiten können. Typischerweise besorgt dies eine Java Virtual Machine (JVM). Dazu kommt eine Auswahl an Bibliotheken, die der Programmierer benutzen möchte. Beides zusammen ist das, was Sun Java Runtime Environment (JRE) nennt. Den Bytecode eines Java-Programms kann man auch einfach durch einen Interpreter schicken. Das dauert jedoch zu lange. Moderne virtuelle Java-Maschinen enthalten daher einen Just-in-time-Compiler (JIT), der den Bytecode gleich in Maschinensprache übersetzt.

Als Java entstand, wirkte die Nachricht einer neuen objektorientierten Sprache mit großem Hersteller im Rücken wie Adrenalin auf Programmiersprachenforscher, was in sich in einer ganzen Ladung neu entwickelter virtueller Java-Maschinen entlud, und eine Menge freier Java-Projekte entstanden. Die meisten lebten ungefähr bis 2003. Einige gibt es jedoch immer noch, und sie haben sich verbreitet.

Virtueller Maschinenpark

Die Hotspot-Maschine für Java gibt es als Client- und Serverversion. Die Client-JVM geht besser mit kurzzeitigen Anwendungen um, während die Server-JVM Dauerläufer beherbergt. Auf dem Client kommt die Anwendung schneller in Schwung, wird aber mit der Zeit langsam. Auf dem Server optimiert die virtuelle Maschine speziell für lange laufende Programme. Die Hotspot-JVM ist nun die JVM, die Suns Open JDK (Abbildung 2) an Bord hat. Die aktuelle Open-JDK-Build b51 datiert vom 19. März 2009.

Abbildung 2: Open JDK ist die quelloffene Entwicklungsumgebung der Java Standard Edition von Sun.

Die Jam VM ist eine weitere virtuelle Maschine, entwickelt von Robert Lougher seit 2003 und damit eine der jüngsten JVMs. Sie ist auf kleine Anwendungen spezialisiert, die sie sehr schnell hochfährt. Die ausführbare Binärdatei für Intel-Chips ab 486 misst ungefähr 180 KByte. Jam VM ensteht auf der Power-PC-Plattform, liegt aber auch als Versionen für x86-, ARM-, AMD64- und MIPS-Prozessoren vor. Die Maschine erfordert die GNU-Classpath-Bibliothek. Laut der Projektwebseite passt sie nicht mit Open JDK zusammen. Die aktuelle Version 1.5.2 ist vom 4. Februar 2009.

Mit Jikes RVM (Research Virtual Machine) betritt IBM die Bühne der virtuellen Maschinen, denn in Big Blues Forschungslabor entstand diese JVM im Rahmen des Jalapeño-Projekts um das Jahr 2000 herum (Abbildung 3). Trotzdem das Projekt seinen Websitz nicht mehr auf der offiziellen IBM-Labor-Seiten hat und die letzte Release 3.0.1 von Oktober 2008 stammt, scheint das Projekt ungebrochen in seiner Begeisterung: Einer der Projektentwickler, der im IBM-Labor arbeitet, war gerade Co-Autor eines Kapitels über die Jike RVM in einem Buch namens "Wunderschöne Architekturen", und zum zehnjährigen Geburtstag des Projekts spendierten sich die Entwickler mit einem Teil der Gelder des Google Summer of Code ein RVM-T-Shirt.

Abbildung 3: Die Jike RVM (Research Virtual Machine) wurde um 2000 herum in IBMs Forschungslaboren geboren und ist bis heute quietschlebendig.

Kaffe entstand bereits 1996. Es war eine Zeit lang das Flaggschiff des Texanischen Hardware-Virtualisierers Transvirtual Technologies. Seit seiner Befreiung 1998 besteht die virtueller Maschine als freies Projekt fort, die besonders auf Portabilität - es läuft auch auf Embedded-Plattformen - und geringe Größe hin entwickelt wird. Kompatibilität zu Suns Spezifikationen will das Projekt aber nicht zu 100 Prozent zusichern.

Cacao ist neben Kaffe das zweite Open-Source-Projekt, das im Namen sowohl mit Verwandtschaft als auch Abgrenzung zu Suns Java betont (Java heißt im umgangssprachlichem Englisch auch Kaffee). Es entstand 1997 als Forschungsprojekt einer schnelleren Alternative zu Suns JVM, die ein reiner Interpreter war. Cacao hingegen kompiliert alles zur Laufzeit. Damit ähnelt es der Hotspot-Serverversion. 2004 wurde sie quelloffen. Das Projekt, das von einem eigenen "Verein zur Förderung der freien virtuellen Maschine CACAO" getragen wird, arbeitet sich äußerst zähflüssig an die 1.0 heran: Die neueste Version 0.99.4 verließ am 16. März 2009 das Entwicklernest, ein halbes Jahr nach 0.99.3.

Als Java-Interpreter versuchte sich auch das Projekt Sable VM (Abbildung 4). Es bezeichnet sich als Reinraum-Implementierung der Sun-Spezifikationen und hatte zum Ziel, "fast" so schnell wie ein Just-in-time-Compiler (JIT) zu sein. Das Projekt hatte allerdings im Jahr 2005 "die Forschungsziele erreicht und wird nciht mehr aktiv gepflegt". In der Tat datiert die letzte Release von Dezember 2005.

Abbildung 4: Blick in die Vergangenheit - Eclipse 3.1 kam 2005 heraus. Aus dem Forschungsprojekt rund um die Sable VM hat sich kein aktives Open-Source-Projekt entwickelt.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Fedoras OpenJDK besteht Java-Kompatibilitäts-Test

    "Java ist endlich frei", jubelt der langjährige Sun-Mitarbeiter Richard Shaples. Der jetzige Jboss-Spezialist nennt den bestandenen TCK-Test einen Meilenstein für das Icedtea-Projekt, das durch die Zusammenarbeit von Red Hat mit Sun die proprietären Lücken in OpenJDK stopfte.

  • Brave GNU World

    Die Kolumne berichtet aus der Perspektive des GNU-Projekts und der FSF über Projekte und aktuelle Geschehnisse aus dem Umfeld freier Software. Dieser Ausgabe beleuchtet die Konsequenzen beim Einsatz kommerzieller JREs, zeigt Alternativen auf und berichtet zudem über Neues aus der FSFE.

  • Projekteküche

    Sowohl Flash als auch Java sind so weit verbreitet, dass niemand auf Dauer ganz um sie herumkommt. Ärgerlich ist allerdings, dass beide Technologien proprietären Lizenzen unterliegen - doch die Community ist schon dabei, Abhilfe zu schaffen.

  • Oracle vereinigt JVMs, plant neue Open-JDK-Releases

    In der Roadmap für die Java-Entwicklungsumgebung Open JDK hat Oracle verlauten lassen, dass aus zwei JVMs eine wird, und dass es 2011 und 2012 neue Versionen gibt.

  • Icedtea-Web 1.1 verbessert Zusammenspiel mit Browsern

    Icedtea-Web, eine freie Umsetzung eines Java-Browserplugins, ist in Version 1.1 erhältlich.

comments powered by Disqus

Ausgabe 12/2014

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.