Java 1.7 auf Mac OS X 10.6 – Snow Leopard

Leider braucht Apple immer ein bisschen Zeit um die neuste Java Version für Mac OS X zu veröffentlichen. Das reicht für den normalen Anwender zwar vollkommen, aber als Entwickler hat man unter Umständen durchaus das Bedürfnis, eine aktuelle(re) Version zu nutzen. Für Windows gibt es von OpenJDK regelmäßig aktuelle Binary Releases der neusten Entwicklungen. Den BSD Port von OpenJDK muss man sich selbst kompilieren. Da es mich ein bisschen Zeit gekostet hat und in der deutschen Blogosphäre nichts zu dem Thema zu finden war, will ich mal nicht so sein und euch an meinem Wissen teilhaben lassen:

Grundlage für den Artikel ist ein Beitrag von Sam Pullara und ein etwas älterer von Stephen Bannasch und einige Mails von der BSD Port Development Mailingliste

Als Grundlage für das Kompilieren von Java 1.7 habe ich den SoyLatte BSD Java Port von Langdon Fuller verwendet. Dabei habe ich prinzipiell die Scripte von den oben genannten Artikeln übernommen.
Hier wird in einfachen Schritten erklärt, wie man den Sourcecode des BSD Port Projektes per Mercurial (mit Forest Extension) auscheckt. Ab und an sind die aktuellen Versionen auf dem Repository allerdings nicht 100% lauffähig, dann sollte man eine ältere Version ausprobieren. Ausserdem ist es sehr hilfreich der Mailingliste zu folgen.
JIBX wird übrigens nicht mehr benötigt und kann übersprungen werden.

Sam Pullara schlägt auf seinem Blog folgendes Buildscript vor, welches bei mir gut funktioniert hat.

build.sh

env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin \
make \
CC=gcc-4.0 CXX=g++-4.0 \
ALT_BOOTDIR=$SOYLATTE_HOME \
JAVA_TOOLS_DIR=$SOYLATTE_HOME/bin \
ALT_FREETYPE_HEADERS_PATH=/usr/X11R6/include \
ALT_FREETYPE_LIB_PATH=/usr/X11R6/lib \
ANT_HOME=/usr/share/ant \
NO_DOCS=true \
HOTSPOT_BUILD_JOBS=1

Kompilieren hat hat ca. eine halbe Stunde auf meinem Macbook G1 gedauert. Mit einem aktuellen Gerät sollte das wesentlich schneller durch laufen. Auf meinem JBoss laufen mit Java 1.7 neuste Java Features die ich zur Dateiverarbeitung nutze. Hier bietet die neuste Version von Java einige Erleichterungen.