Samstag, 26. Mai 2012

Oracle JDK 7 für Mac OS X

Vor genau einem Monat hat Oracle nun endlich  das offizielle JDK 7 für Mac OS X freigegeben, zeitgleich mit Java SE 7u4 für alle anderen Systeme. (Wir erinnern uns: Ab Version 7 wird Java für Mac OS X von Oracle und nicht mehr von Apple bereitgestellt.) Die genauen Versionsinformationen habe ich wie immer in meiner Liste der Mac OS X- und Java-Versionen zusammengetragen.
Die DMG-Datei enthält ein Installationsprogramm, das das JDK 7 ohne großen Aufwand ins Verzeichnis /Library/Java/JavaVirtualMachines/1.7.0.jdk schreibt, d.h. das JDK steht für alle Benutzer auf dem Rechner zur Verfügung.
Nach der Installation muss man das JDK 7 in den "Java-Einstellungen" in den Dienstprogrammen aktivieren, ansonsten bleibt das nach wie vor von Apple gepflegte Java 6 die Standard-Version. Entwickler – gerade im Bereich Server-/Enterprise-Programmierung – können das JDK 7 bereits gut verwenden. Für Endanwender mag es im Moment noch besser sein, Java 6 als die aktive (d.h. in der Liste oberste) Java-Version einzustellen, da das JDK 7 noch das ein oder andere Problem mit Applets bzw. der GUI zu haben scheint. Das ist wohl auch der Grund, warum Oracle das Mac-JRE für Endanwender erst später im Jahr veröffentlichen wird.

Abschließend noch ein paar Hinweise zu Problemen und deren mögliche Lösung.

Falls im Terminal das JDK 7 nicht gefunden wird (d.h. java -version und /usr/libexec/java_home liefern noch Java 6), obwohl es in den Java-Einstellungen als System-Default konfiguriert wurde, sollte man prüfen, ob die Umgebungsvariable JAVA_HOME (falsch) gesetzt ist. Das kann beispielsweise grafisch im RCEnvironment geschehen sein, falls man diese Erweiterung der Systemeinstellungen installiert hat. Häufiger ist dies wohl aber in der Shell-Konfigurationsdatei (z.B. .bash_profile) erfolgt. Entweder setzt man den Eintrag für JAVA_HOME auf

export JAVA_HOME=`/usr/libexec/java_home`

(Wichtig: Mit den "Backticks" um den Programmaufruf), oder aber man entfernt den Eintrag für JAVA_HOME komplett. Nach einem Rechner-Neustart (aus- und einloggen hat bei mir nicht geholfen) sollte dann alles funktionieren.

In Eclipse 3.7.2 sollte das JDK 7 bei einem neuen Workspace automatisch erkannt werden, wenn Java 7 die System-Voreinstellung ist. Ansonsten muss man das JDK manuell in den Eclipse-Preferences auf der Seite "Installed JREs" hinzufügen. Mit dem "Add"-Button fügt man eine "Standard VM" hinzu und trägt als "JRE Home" den Pfad

/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

ein – fertig.

In NetBeans 7.1.2 sollte ein installiertes JDK 7 automatisch erkannt werden. Ansonsten muss man das JDK auch hier manuell ergänzen, und zwar im Menü "Tools / Java-Platforms". Mit dem Button "Add Platform" kann man das gewünschte Basisverzeichnis eingeben (/Library/Java/JavaVirtualMachines oder /System/Library/Java/JavaVirtualMachines) und anschließend eine der dort installierten Java-Laufzeitumgebungen auswählen.