Ich versuche, ein JDK 8 auf OS X Mountain Lion zu installieren (um mit den neuen Lambda-Funktionen zu experimentieren).
Eine Maschine, die kürzlich von OS X 10.6 auf 10.8 aktualisiert wurde, mit
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.8.2
BuildVersion: 12C60
$ ls -l /Library/Java/JavaVirtualMachines/
Home@ -> jdk1.7.0_09.jdk/Contents/Home/
jdk1.7.0_09.jdk/
$ ls -l /System/Library/Java/JavaVirtualMachines/
1.6.0.jdk/
und dieser Ordner aus der OS X 10.6-Ära:
/System/Library/Frameworks/JavaVM.framework/Versions/
In ~/.bashrc habe ich gesetzt
export JAVA_HOME=/Library/Java/JavaVirtualMachines/Home
Also habe ich
$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home
Laden Sie die .tar.gz-Datei von http://jdk8.java.net/lambda/ herunter und entpacken Sie sie in
(Ich habe die Ordner jdk1.8.0.jdk/Contents/Home
manuell erstellt)
/Library/Java/JavaVirtualMachines/Home
, dass er auf jdk1.8 zeigtJetzt habe ich
$ java -version
openjdk version "1.8.0-ea"
OpenJDK Runtime Environment (build 1.8.0-ea-lambda-nightly-h2135-20121203-b67-b00)
OpenJDK 64-Bit Server VM (build 25.0-b05, mixed mode)
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/Home
$ ls /Library/Java/JavaVirtualMachines
Home@ -> jdk1.8.0.jdk/Contents/Home/
...
Aber das java_home
Dienstprogramm scheint sich nicht darum zu kümmern:
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home
Es weiß nicht einmal, dass ein JDK 8 verfügbar ist:
$ /usr/libexec/java_home -v 1.8*
Unable to find any JVMs matching version "1.8*".
Ich möchte, dass das /usr/libexec/java_home
Dienstprogramm meine installierten JDKs findet, damit ich so etwas verwenden kann:
alias setjdk17='export JAVA_HOME=$(/usr/libexec/java_home -v 1.7*)'
alias setjdk18='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8*)'
und entferne den Home
Symlink. Weiß jemand
/usr/libexec/java_home
es erkennen lassen?Sie müssen auch das Verzeichnis Contents/MacOS und Info.plist aus dem 1.7 SDK kopieren und anpassen (indem Sie die Versionszeichenfolgen darin ändern).
Dann kannst du:
$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
$ java -version
openjdk version "1.8.0-ea"
$ /usr/libexec/java_home -v 1.8*
/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
Beachten Sie, dass dies ein Hack ist und ich nichts anderes versucht habe, als Java zu starten ... Ich habe nur auf Ihrem Tipp zum Erstellen des Pakets aufgebaut.
Tikus Kucing