¿Por qué / usr / libexec / java_home no reconoce JDK 1.8?

Estoy tratando de instalar un JDK 8 en OS X Mountain Lion (para experimentar con las nuevas funciones de lambda).

Punto de partida

Una máquina recientemente actualizada de OS X 10.6 a 10.8, con

$ 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/ 

y esta carpeta de la era OS X 10.6:

 /System/Library/Frameworks/JavaVM.framework/Versions/ 

En ~ / .bashrc, he establecido

 export JAVA_HOME=/Library/Java/JavaVirtualMachines/Home 

Así que tengo

 $ 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 

Cómo instalé JDK 8

  1. Descargué el file .tar.gz de http://jdk8.java.net/lambda/ y lo desempaqué en

    • /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home

    ( jdk1.8.0.jdk/Contents/Home las carpetas jdk1.8.0.jdk/Contents/Home manualmente)

  2. Cambió el enlace simbólico /Library/Java/JavaVirtualMachines/Home para apuntar a jdk1.8

Ahora tengo

 $ 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/ ... 

Pero a la utilidad java_home no parece importarle:

 $ /usr/libexec/java_home /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home 

Ni siquiera sabe que hay un JDK 8 disponible:

 $ /usr/libexec/java_home -v 1.8* Unable to find any JVMs matching version "1.8*". 

Pregunta

Me gustaría que la utilidad /usr/libexec/java_home encuentre mis JDK instalados, para que pueda usar algo como esto:

 alias setjdk17='export JAVA_HOME=$(/usr/libexec/java_home -v 1.7*)' alias setjdk18='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8*)' 

y deshacerse del enlace simbólico de Home . Alguien sabe

  • ¿Cómo puedo instalar correctamente JDK 8?
  • ¿Cómo puedo hacer que /usr/libexec/java_home reconozca?

  • Acerca de esta Mac muestra charts incorrectos en Macbook pro 15 "finales de 2011
  • / usr / bin / nice y freno de mano
  • ¿Funcionará Mountain Lion con una MacBook White de principios de 2008?
  • Mac OS X Mountain Lion no puede compartir connection a Internet debido a la protección 802.1X
  • Compré Mountain Lion, pero ¿dónde puedo downloadlo ahora?
  • Time Machine no hace copys de security de carpetas con el mismo nombre que el usuario
  • ¿Hay algún significado para el text atenuado en Safari 6?
  • Deshabilitar el intercambio de memory inactiva
  • One Solution collect form web for “¿Por qué / usr / libexec / java_home no reconoce JDK 1.8?”

    También debe copyr el directory Contents / MacOS e Info.plist desde el 1.7 SDK y adaptarlos (cambiando las cadenas de versión en él).

    Entonces tú puedes:

     $ 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 

    Tenga en count que esto es un truco y no intenté con nada más que comenzar con Java … Estaba desarrollando su consejo para crear el package.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).