Skip to content


Actualizar JDK 1.6 en Mac OS X

Hasta ahora he trabajado con la versión por defecto instalada en el OS X del JDK de java la 1.5; esta se ha ido actualizando automáticamente. Sin embargo ahora quería hacer algunas pruebas con VisualVM y resulta que necesitaba una versión más moderna del JDK, la 6.0 mínimo, así que he decidido ver como funciona el sistema de actualizaciones de Mac OS X.

Cual ha sido mi sorpresa cuando en una de las actualizaciones del sistema venía la nueva versión del JDK. Sin embargo esta release no se convierte en la release por defecto, sino que si deseas utilizarla, debes hacer los cambios por ti mismo.

Investigando un poco logramos la ruta física donde se instalan todas las versiones de los JDK de java descargados:

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

Además de todas las versiones, existen tres directorios llamativos: A, Current y CurrentJDK; estos dos últimos directorios son symbolic links a la versión que interesa. Lo que significa que para cambiar de versión del JDK sólo hay que cambiarlos a ellos.

Si buscáis por internet encontraréis un script bastante utilizado, que nos muestra las JDKS que existen instaladas en vuestra máquina y cambia el CurrentJDK a la versión que queramos. Sin embargo, habría que completar este script. Ambos Current y CurrentJDK deben ser cambiados o algunos programas os dejarán de funcionar. La verdad es que por lo que he encontrado, lo único que he podido sacar en claro es que hay algunas razones por las que no cambiar CurrentJDK:

it affects the system globally, it changes the system from how Apple shipped it (things under /System are Apple managed), and it can cause updates to fail and/or have unintended side effects.

Si aún así queréis seguir adelante con el cambio podéis hacer lo siguiente.

Un vistazo rápido al directorio : /System/Library/Frameworks/JavaVM.framework/Versions/ os devolverá algo parecido a:

weemac:Versions jenaiz$ ls -la
total 56
drwxr-xr-x 14 root wheel 476 15 jul 08:59 .
drwxr-xr-x 11 root wheel 374 4 jul 08:08 ..
lrwxr-xr-x 1 root wheel 5 7 may 20:39 1.3 -> 1.3.1
drwxr-xr-x 3 root wheel 102 29 sep 2007 1.3.1
lrwxr-xr-x 1 root wheel 5 21 oct 2007 1.4 -> 1.4.2
lrwxr-xr-x 1 root wheel 3 7 may 20:39 1.4.1 -> 1.4
drwxr-xr-x 8 root wheel 272 21 oct 2007 1.4.2
lrwxr-xr-x 1 root wheel 5 21 oct 2007 1.5 -> 1.5.0
drwxr-xr-x 8 root wheel 272 21 oct 2007 1.5.0
lrwxr-xr-x 1 root wheel 5 7 may 20:39 1.6 -> 1.6.0
drwxr-xr-x 8 root wheel 272 7 may 20:39 1.6.0
drwxr-xr-x 8 root wheel 272 7 may 20:40 A
lrwxr-xr-x 1 root wheel 1 15 jul 08:57 Current -> A
lrwxr-xr-x 1 root wheel 3 15 jul 08:59 CurrentJDK -> 1.5

Como podéis ver, en estos momentos mi CurrentJDK está usando la 1.5 y mi Current apunta a A.

Para hacer que el JDK 1.6 sea el actual, tendréis que hacer:

ln -hfs 1.6 Current
y
ln -hfs 1.6 CurrentJDK

Así es tal como darrell lo explica, y es parecido a como el script lo hace. Todo esto hay que hacerlo como super usuario.

El porqué algunas aplicaciones dejan de funcionar hay que encontrarlo a que existen algunos problemas en esta versión, que Apple no ha considerado en solucionar aún:

- Sólo soporta 64 bits: adios a los applets en Safari.
- No hay soporte para Cocoa: aplicaciones como Cyberdurk dejarán de funcionar. Esto no sólo significa que no podamos tener look&feel de Mac OS sino que también perderemos algunas de las utilidades tales, como poder usar Growl como sistema de notificación, por ejemplo.

Si el tema de cómo está organizado el directorio de versiones de Java y el porqué de esta cosas, os interesa realmente, os dejo unos links interesantes sobre todo esto, no sólo aplicable al JDK:

Anatomy of Framework Bundles
Framework Versions
What are Frameworks?

Posted in Open Source, Tips & Tricks, apple, java.

Tagged with , , , .

You might also like

sun-java en Ubuntu Cosas del destino, que me ha tocado reinstalar una máquina desde cero, utilizando Ubuntu. Y como es...
Actualización a Ubuntu 6.06 a 7.04 (Feisty Fawn) Tras algo más de un mes sin publicar, por una gran sobrecarga de trabajo y otros temas, he retomado...
Cómo configurar ddclient Tras haber estado todo el día de ayer el dominio fuera de servicio, he logrado ver que el problema era...
Rails 2.2 liberado Desde el viernes pasado tenemos disponible la versión 2.2 de Rails, por lo que ya podemos disfrutar...
Grab This Widget

5 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. GreenEyed says

    Yo como de momento no he actualizado mi version de OSX, me quedo sin Java 6 oficial, asi que de momento tiro con SoyLatte.

    Afortunadamente para mi, trabajo en el servidor así que la falta de Cocoa, integración con el S.O. etc. no me afectan. Aunque algunos problemas he tenido con algun IDE.

    Por ese lado para mi Apple ha perdido muchos puntos.

  2. Jesús Navarrete says

    Lo malo no es donde trabajamos, yo por ejemplo trabajo igual que tú en la parte servidora, pero hacer uso del JDK 6.0 implica que otras aplicaciones puedan dejar de funcionar, yo he vivido el caso de Cyberdurk, un cliente ftp bastante chulo, y decidí volver a la 1.5 y en mi eclipse configurar la 1.6 como JDK interno.

    Mirando entornos de producción, esto no debe preocupar demasiado, porque siguen en su mayoría con versiones antiguas, pero la verdad es que molesta bastante.

    A mi también me parece que esto le hace perder bastantes puntos.

  3. GreenEyed says

    Tienes razón, ahora que lo dices yo no cambie el JDK por defecto sino que mantengo el Java 5 que tenia, y el SoyLatte lo pongo explicitamente cuando quiero usarlo.

    Yo si que he empezado a usar Java 6 en producción, ya que hacemos cosas más pequeñas y podemos actualizar algunas antes, pero bueno… la verdad es que Apple solo lo tengo en el portatil y lo uso como secundario de desarrollo. Visto lo visto, menos mal que lo tengo como secundario :(

  4. VictorR says

    Gracias por el aviso, yo tengo instalada la versión 1.6 pero no la pienso poner como currentJDK, vivo de varios programas que necesitan Cocoa… y no quiero buscar substitutos. uff!

  5. Lorenzo says

    Hola, la verdad que si es molestoso todo esto, yo vendo de usar linux , y antes de usar windows, me cambie a linux porque windows sucks,, me compre una imac y empeze a usar Leopard, pero me molesta, que no haya un simple instalador directo de Sun, estaba desarrollando cuando me di cuanta que hay unas librerias quesolo Mac da, unas para sumas de arreglos, entonces me di cuenta que mejor ponia windows, utilize windows,pero que creen? me cayo virus,, siento que Mac es muy restrictivo , pero en fin,,,,



Some HTML is OK

or, reply to this post via trackback.