Java ist auch eine Insel

Donnerstag, Juni 15, 2006

Inselupdate: Native Compiler und Wrapper

Native Compiler

Eine in Java geschriebene Applikation lässt sich erst einmal nur mit einer Java Laufzeitumgebung ausführen. Einige Hersteller haben jedoch Compiler entwickelt, die direkt unter Windows oder einem anderen Betriebssystem ausführbare Programme erstellen. Die Compiler, die aus Java-Quelltext – oder Java-Bytecode – Maschinencode der jeweiligen Architektur erzeugen, nennen sich native oder Ahead-Of-Time Compiler. Das Ergebnis ist eine direkt ausführbare Datei, die keine Java Laufzeitumgebung nötig macht. Je nach Anwendungsfall kann das Programm performanter sein, eine Garantie ist es allerdings nicht. Die Startzeiten sind im Allgemeinen geringer und das Programm ist viel schwieriger zu entschlüsseln, was das Reverse Engineering angeht.
Ein freier Compiler unter der GNU-Lizenz ist gcj (http://gcc.gnu.org/java/); ein kommerzieller Vertreter ist Excelsior JET (http://www.excelsior-usa.com/jet.html). Das viele Hersteller ihre Produkte einstellt haben, ist sicherlich ein Zeichen dafür, dass die existierenden Laufzeitumgebungen mittlerweile ausreichende Geschwindigkeit, Speicherverbrauch und Startzeiten zeigen.

Einpacken von Java-Programmen

Wer Java-Programme vertreibt, weiß um das Problem der JVM-Versionen, Pfade, Start-Icon, Splash-Screen und so weiter. Eine Lösung ist, einen Wrapper zu bemühen, der sich als ausführbares Programm wie eine Schale um das Java-Programm legt. Der Wrapper ruft die virtuelle Maschine auf und übergibt ihr die Klassen. Es ist also immer noch eine Laufzeitumgebung nötig, doch lassen sich den Java-Programmen Icons mitgeben und Startparameter setzen.
Die Open-Source-Software JSmooth (http://jsmooth.sourceforge.net/) kapselt ein Java-Archiv mit Klassen und Ressource-Dateien in eine komprimiertes, ausführbares Exe-Programm. JSmooth setzt Eigenschaften wie ein assoziiertes Icon oder Startvariablen mit einer angenehmen grafischen Oberfläche. Ein weiteres Programm ist launch4j (http://launch4j.sourceforge.net/), welches startbare Java-Programme für Windows, Linux, Mac OS X, Solaris erzeugt. Beide sind in Ant einsatzfähig.

AddThis Social Bookmark Button

Mittwoch, Juni 14, 2006

Insel: Projekte JMF und Java Sound API gestorben

Sun wollte zum Abspielen von Multimedia-Dateien das Java Media Framework etablieren, doch da es schon lange nicht mehr weiter entwickelt wird, können wir die Annotation @Tot an das Projekt setzen. (In der letzten Änderung Ende 2004 ist MP3 hinzugekommen.) Es gibt Ansätze wie das FMJ (Freedom for Media in Java), welches sich zum Ziel setzt, das JMF auf der Basis von jffmpeg frei nachzuimplementieren, doch offiziell unterstützt Sun das nicht. Das gleiche gilt im übrigen für die Java Sound API, an der zuletzt nur noch ein Entwickler beteiligt war. Siehe dazu auch http://weblogs.java.net/blog/jonathansimon/archive/2003/06/whats_up_with_t.html. Schon erstaunlich, was in den letzten Jahren so gestorben ist.

AddThis Social Bookmark Button