¿Cómo iniciar aplicaciones que requieren Java en Mountain Lion con solo Java 7 instalado?

Acabo de recibir una nueva MacBook Air que se envió con Mountain Lion 10.8.4 y sin Java instalado. Hay un /usr/bin/java, pero ejecutarlo me pediría que instale un tiempo de ejecución de Java 6 distribuido por Apple en un cuadro de diálogo de Cocoa.

Sin embargo, Oracle ya no es compatible con Java 6 y no quiero ejecutar una instalación de Java no compatible y probablemente insegura.

Entonces, fui a las descargas de Java SE de Oracle e instalé el último JDK, jdk-7u25-macosx-x64. Ahora el único Java que tengo en esta máquina es 1.7.0_25, distribuido por Oracle. /usr/bin/java -versionahora trabaja.

Acabo de ejecutar brew cask install eclipsey terminé con Eclipse 4.3. Cuando intenté ejecutarlo por primera vez, recibí el mismo aviso para instalar un tiempo de ejecución de Java como si no tuviera Java instalado.

Así que busqué aquí en Apple StackExchange y encontré https://apple.stackexchange.com/a/58841/52440 . Después de ejecutar sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk /System/Library/Java/JavaVirtualMachines/1.6.0.jdk, ahora puedo iniciar Eclipse.

Sin embargo, cuando trato de iniciar otras aplicaciones que requieren Java, como /usr/share/java/Tools/Java VisualVM.appy /opt/homebrew-cask/Caskroom/webstorm/6.0.2a/WebStorm.app, recibo un error que indica que no hay disponible Java 1.6 compatible (ver más abajo).

captura de pantalla del cuadro de diálogo de error

¿Alguien sabe si es posible hacer que estas otras aplicaciones funcionen, o realmente requieren Java 6 y no pueden funcionar con Java 7?

No vincule código que no sea de Apple a un lugar controlado por Apple. Para eclipse ver otras preguntas. Sospecho que Java Vuual VM está relacionado con la VM y, como en un área de Apple, necesita una VM de Apple.
Java 6 todavía es compatible y Apple proporciona actualizaciones. Piense en Java 6 y 7 como dos lenguajes separados y no como una actualización

Respuestas (1)

El cuadro de diálogo se muestra porque Java de Oracle solo tiene un conjunto parcial de 'JVMCapabilities' y se anuncia a sí mismo como compatible solo con la línea de comandos.

Como superusuario (use 'sudo' si edita en Terminal), debe editar /Library/Java/JavaVirtualMachines/jdk.1.7.[version-and-release].jdk/Contents/Info.plisty encontrar la siguiente clave:

<key>JVMCapabilities</key>
  <array>
    <string>CommandLine</string>
  </array>

y agréguelo para incluir los valores que faltan:

<key>JVMCapabilities</key>
  <array>
    <string>CommandLine</string>
    <string>JNI</string>
    <string>BundledApp</string>
  </array>

Después de eso, debe reiniciar, cerrar sesión o killall Finder, lo que parezca funcionar. (La gente ha informado que reiniciar Finder fue suficiente, pero tuve que cerrar la sesión).

--
Fuente .