Posts mit dem Label OpenJDK werden angezeigt. Alle Posts anzeigen
Posts mit dem Label OpenJDK werden angezeigt. Alle Posts anzeigen

Donnerstag, 24. November 2011

Java für Mac OS X 10.7 "Lion"

Da Apple vor kurzem Java-Updates für Mac OS X veröffentlicht hat, gibt es an dieser Stelle eine kleine Erinnerung an die wichtige Änderung, die mit Mac OS X 10.7 "Lion" eingeführt wurde: Im Gegensatz zu allen anderen Mac OS X-Versionen davor (*) ist keine Java-Laufzeitumgebung mehr vorinstalliert.
(* Von der 10.0-Public Beta, die wir uns 2000 von der Apple Expo Paris mitgenommen haben, mal abgesehen.)

Beim ersten Aufruf einer Java-Anwendung erhält man einen Hinweis, dass die Java-Runtime benötigt wird. Bestätigt man dies, wird Java SE 6 heruntergeladen und installiert. Danach wird die ursprünglich aufgerufene Java-Anwendung gestartet.

Das aktuelle Java-Update von Apple enthält Java 1.6.0_29 und ist damit zeitlich erfreulich nah an Oracles Java 6-Update für andere Systeme. Java 7, für andere Systeme mittlerweile als erstes Update freigegeben, ist leider immer noch nicht final für Mac OS X verfügbar (immerhin gibt es eine Developer Preview von Oracle). Java 8, was sich derzeit noch in der Entwicklung befindet, ist aber schon als Build des OpenJDK 8 für Mac OS X erhältlich.

Mittwoch, 5. Oktober 2011

Oracle JDK7 für Mac OS X (Developer Preview)

Nachdem Java SE 7 schon seit einigen Monaten für Windows, Linux und Solaris verfügbar ist und eine Portierung des OpenJDK 7 für Mac OS X begonnen wurde, bietet Oracle nun eine Vorabversion des JDK 7 für Mac OS X an.

Die Installation ist denkbar einfach: Nach dem Download der DMG-Datei zieht (kopiert) man die enthaltene Paket-Datei einfach ins Verzeichnis /Library/Java/JavaVirtualMachines. Fertig! Das Verzeichnis sollte bereits existieren, wenn man das letzte Apple-Java-Update installiert hat, ansonsten muss man es von Hand anlegen.

Die neue Version wird sofort von den Java-Einstellungen erkannt, ein Neustart des Systems ist nicht notwendig. Anwendungen müssen beendet und neu gestartet werden, um das neue Java nutzen zu können.

much$ /usr/libexec/java_home --version 1.7
/Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home

much$ /usr/libexec/java_home -v 1.7 --exec java -version
openjdk version "1.7.0-ea"
OpenJDK Runtime Environment (build 1.7.0-ea-b211)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)

Freitag, 14. Januar 2011

OpenJDK 7 für Mac OS X

Nachdem Apple vor knapp zwei Monaten Unterstützung für das OpenJDK-Projekt angekündigt hatte, wurde die Mac OS X-Portierung am Montag dieser Woche als offizielles OpenJDK-Projekt angenommen – und nur einen Tag später hat Apple den ersten offenen Code in das Projekt eingebracht. Im Wesentlichen entspricht diese erste Veröffentlichung der BSD-Portierung. Apple hat derzeit nur den Build-Prozess verändert, um ein Universal Binary mit einem .jdk-Bundle zu erzeugen, das zur neuen Java-Verzeichnisstruktur von Mac OS X passt (und entsprechend nach der Installation automatisch erkannt wird).

Jeder kann nun zum Mac OS X-Port beitragen und sich das aktuellste OpenJDK aus den Quelltexten bauen. Voraussetzung dafür sind u.a. Mac OS X ab Version 10.6.5 sowie Xcode ab Version 3.2.5. Genaueres ist im Wiki beschrieben; dort kann man auch den aktuellen Projekt-Status einsehen.

Wer das JDK 7 einfach ausprobieren möchte, ohne es selber bauen zu müssen, kann sich ein fertiges DMG von Google Code herunterladen. Der Installer für den Mac OS X-Branch enthält sowohl eine 32- als auch eine 64-Bit-JVM. Nach der schnellen und vollkommen unproblematischen Installation kann man das JDK 7 mit den üblichen Kommandos im Terminal testen:

much$ /usr/libexec/java_home --version 1.7
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

much$ export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
much$ $JAVA_HOME/bin/java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-b00)
OpenJDK 64-Bit Server VM (build 20.0-b03, mixed mode)

much$ /usr/libexec/java_home -v 1.7 --exec java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-b00)
OpenJDK 64-Bit Server VM (build 20.0-b03, mixed mode)

Für grafische Frontends wird noch kein Cocoa, sondern nur X11 unterstützt. Zum Ausprobieren der neuen Sprachfeaturen (Strings im switch etc.) reicht das aber vollkommen aus.

Wie bereits erwähnt wird das OpenJDK 7 automatisch von den Java-Einstellungen in Mac OS X erkannt. Wegen der noch unvollständigen Cocoa- bzw. Mac OS X-Integration sollte man die neue Version aber noch nicht als Default setzen, d.h. besser am Ende der Liste belassen.

Montag, 15. November 2010

Oracle bringt Java SE 7 für Mac OS X

... und Apple wird auch in Mac OS X 10.7 "Lion" noch die eigene Java SE 6-Implementation bereitstellen. Das sind kurz zusammengefasst die Ergebnisse der letzten Tage.

Nachdem es vor drei Wochen recht düster für die Zukunft von Java auf Mac OS X ausgesehen hatte, weil Apple die eigene Java-Implementierung abgekündigt, aber keinen Ersatz als Perspektive geboten hatte, sieht es nun so aus, als ob wir genau die Lösung bekommen, die von vielen favorisiert wurde: Apple bringt die meisten Teile seiner Java-Implementation als Open Source in das OpenJDK-Projekt ein, und Oracle wird daraus – beginnend mit Java SE 7 – offizielle Java-Releases für Mac OS X bauen.

Es ist noch nicht ganz klar, wann Java SE 7 für Mac OS X verfügbar sein wird und wie die Quelltexte im Detail zur Verfügung gestellt werden. Aber die Zukunft für Java auf Mac OS X dürfte damit sichergestellt sein.

Nebenbei hat Apple in der Pressemitteilung bekannt gegeben, dass auch das im nächsten Jahr erscheinende Mac OS X 10.7 "Lion" noch die eigene Java SE 6-Implementation enthalten wird, so dass für die Übergangszeit auf Oracles Mac-Java-Implementation eine klare Perspektive besteht.

Na also. Warum denn nicht gleich so?

Donnerstag, 12. März 2009

Aktuelle Java-Versionen für Mac OS X

Im Netz taucht immer wieder die Frage auf, welche Java-Versionen aktuell unter Apples Mac OS X genutzt werden können – gerade wenn Java-Entwickler ihre Programme nicht selber auf einem Mac testen können.

Für Mac OS X 10.5 sind die Java-Versionen 1.4, 5.0 und 6 direkt von Apple verfügbar und können über die Softwareaktualisierung ins System eingebunden werden (als JDKs, es gibt von Apple keine separaten JREs). Unter Mac OS X 10.4 war zusätzlich noch Java 1.3 nutzbar, dafür hat Apple für diese ältere Betriebssystemversion kein Java SE 6 herausgebracht.

Aber Achtung: Gerade Java SE 6, also die einzige Version, die Ende dieses Jahres noch nicht EOL sein wird, steht nur für 64-Bit-Intel-Macs zur Verfügung. Das sind solche mit Core2Duo-Prozessor. PPC-Macs und ältere Intel-Macs mit CoreDuos bleiben leider außen vor...

Standardmäßig ist für Applets und Java Web Start-Anwendungen so oder so Java 5.0 eingestellt. Mit dem System-Utility /Programme/Dienstprogramme/Java/Java-Einstellungen kann man dies ändern (siehe Bildschirmfoto).

Fazit: Java 6 ist in der Apple-Welt für Endbenutzer leider immer noch nicht wirklich angekommen. Wenn Ihre Java-Applikationen von möglichst vielen Apple-Nutzern eingesetzt werden sollen, sollten Sie derzeit noch Java 5.0 als Mindestanforderung voraussetzen.

Und nun noch ein paar technische Details:

Die aktuellen JDKs für Mac OS X haben die Versionsnummern 1.4.2_18, 1.5.0_16 und 1.6.0_07. Sie können mit den Software-Updates Java for Mac OS X 10.4 Release 7 bzw. Java for Mac OS X 10.5 Update 2 installiert werden (es gibt mittlerweile auch Release 8 und Update 3, aber dadurch wird nur Java Web Start aktualisiert und nicht nicht JDK-Version verändert).

Das Java-Update für Mac OS X 10.5 installiert übrigens auch auf CoreDuo-Macs Java SE 6, nur leider lässt sich das auf diesen Rechnern trotzdem nicht ausführen...

Seit einigen Jahren pflege ich eine detaillierte Liste von Mac OS X- und deren Java-Versionen inkl. der entsprechenden Download-Links.

Unabhängig von Apples Java-Versionen gibt es mit SoyLatte seit einiger Zeit auch eine Portierung vom OpenJDK für Mac OS X. Damit kann Java SE 6 nicht nur unter Mac OS X 10.5, sondern auch unter 10.4 genutzt werden. Allerdings ist auch SoyLatte nur für Intel-Macs verfügbar, und für grafische Ausgaben wird das für Mac-Oberflächen unübliche X11 anstelle von Cocoa genutzt.

Bleibt zu hoffen, dass Sun es (mit Apples Hilfe?) ab Java 7 schafft, selber wieder ein vernünftiges JDK für Mac OS X herauszubringen.