¿Es posible instalar JDK 7 después de instalar MATLAB en Mountain Lion?

3

Necesito instalar MATLAB mediante una conexión a Internet, pero de acuerdo con los documentos No puedo instalar MATLAB con una conexión si tengo JDK 7 instalado en Mountain Lion. Según MATLAB, la solución es:

  

1) Instalar / activar manualmente sin usar Internet. MATLAB funcionará   bien, incluso si tiene JDK 7 instalado porque todavía estará usando   Java 6 de Apple que no se elimina cuando JDK 7 está instalado.

     

2) Alternativamente, puedes desinstalar JDK 7 que te permitirá instalar   y activa MATLAB usando Internet.

Necesito una conexión a Internet, así que el número 1 no funcionará. También necesito JDK 7, así que me preguntaba si sería capaz de desinstalar JDK 7, luego instalar MATLAB y luego reinstalar JDK 7 sin romper MATLAB. ¿Es esto posible, o hay otras soluciones?

    
pregunta fvrghl 08.10.2013 - 13:44

1 respuesta

1

Respuesta corta: sí. Funcionará bien si vuelve a colocar JDK 7 después de la instalación. Aunque es posible que tenga que hacer lo mismo si decide desactivar Matlab en algún momento.

Tienes algunas opciones.

Opción A: usar un Matlab más reciente

Una solución fácil podría ser utilizar Matlab R2014a. Es compatible con Mavericks y viene con su propia JVM incluida , por lo que no utiliza las JVM del sistema. Acabo de instalarlo en mi máquina Mavericks la semana pasada, que ni siquiera tenía instalado Java 1.6 de Apple, y funcionó bien. (También miré la fuente para confirmar que "Activate" usa el JRE incluido)

Opción B: desinstalar temporalmente JDK 7

Si esa no es una opción, parece que la eliminación del JDK 7 solo es necesaria durante el proceso de instalación. Lo adivino porque se ajusta al java predeterminado para el programa de activación del software en lugar de utilizar la lógica de detección e incrustación JRE normal de la aplicación Matlab. "Activate MATLAB" es un programa Java independiente, que no forma parte del ejecutable de Matlab, por lo que se ejecuta usando java . Así que puedes volver a poner JDK 7 una vez que Matlab está instalado; la ejecución normal de Matlab no la usará.

Puede desinstalar temporalmente el JDK 7 de manera conveniente simplemente moviéndolo fuera del directorio /Library/Java para que el sistema no lo vea. Entonces, no tiene que pasar por todo el proceso de descarga e instalación nuevamente.

cd /Library/Java/JavaVirtualMachines
mkdir ~/disabledJVMs
sudo mv jdk1.7.0_51.jdk ~/disabledJVMs
% also change the JAVA_HOME definition if you set it in an rc file or /etc/launchd.conf

% ... now install Matlab ...

% And restore the JDK
sudo mv ~/disabledJVMs/jdk1.7.0_51.jdk .

Puede confirmar que la desinstalación funcionó con /usr/libexec/java_home .

Opción C: ¡hackear el instalador de Matlab!

Si desea obtener un diseño sofisticado, podría hackear el instalador de Matlab para obligarlo a usar el JDK 1.6 de Apple para la activación.

Durante el proceso de instalación, una vez que todos los archivos se hayan copiado en /Applications pero antes de iniciar el cuadro de diálogo de activación, haga lo siguiente:

  • Vaya a /Applications en el Finder, haga clic con el botón derecho en MATLAB y elija "Mostrar contenido del paquete".
  • Inicie un editor de texto habilitado para administrador desde la Terminal con sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit .
  • Abre bin/activate_matlab.sh en ese TextEdit. Encuentre dónde está configurando las rutas a java y codifíquelas para que apunten al JDK de Apple 1.6, que está en /System/Library/Java/JavaVirtualMachines/1.6.0.jdk . En el R2014a enable_matlab.sh, está en las funciones setVMenvironment y setVMpath , y configura una variable JRE_HOME, que debe configurarse en /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home .
  • Haz lo mismo con deactivate_matlab.sh

Y luego puede continuar con el paso de activación del software en el instalador de Matlab que dejó en funcionamiento, y apuesto a que funcionará incluso con JDK 7 en su lugar.

    
respondido por el Andrew Janke 19.03.2014 - 06:26

Lea otras preguntas en las etiquetas