Java for mac Desarrollo

Java para Apple M1, pesadilla en la calle ARM

23/08/21 4 min. de lectura

Últimamente he estado mirando para comprar un portátil Apple con procesador M1 porque ya hay rumores que incluso desde macOS Monterey ya habrá algunas funcionalidades no disponibles para los mac de procesador Intel.

La lista de la compra

Empecé con la lista de cosas típicas para desarrolladores:

  • Docker: OK (aquí tienes la guía de instalación si te interesa, que requiere rosetta: https://docs.docker.com/docker-for-mac/apple-silicon/)
  • Node.js: OK
  • Git: OK
  • VSCode: OK
  • Virtualización: Pararells si lo necesitas dado que es de pago
  • Java… java ¿dónde estás Java?

La búsqueda

Comencé por la web de Oracle, ya sé que no es demasiado imaginativo, intenté localizar JDK 8 para Apple Silicon:

La única versión para macOS era para x64, parece hasta lógico que Oracle no actualice la JDK 8, que es un producto de 7 años que termina su soporte en Marzo de 2022.

Así que pasé a Java 11, que es la siguiente versión que tienen soporte a largo plazo (LTS) y ¿qué c****?

¿Aún sin soporte para Apple silicon? Sólo para x64 como se puede ver por el nombre del fichero.

Así que al final lo intenté con la última versión publicada, Java 16 y….

¿Significa esto que no puedo ejecutar Java en un Apple con M1?

La recompensa

En realidad, lo que significa es que parece que no con la JDK de Oracle. Pero ¿te acuerdas de nuestros anteriores artículos de Java? Podemos buscar entre las JDK alternativas, y comprobar varios de ellos:

  • AdoptOpenJDK sólo tiene distribuciones para Linux y Windows, no para macOS (independientemente del chip)
  • Amazon Corretto solo lista la versión x64 para macOS, mala suerte, pero al menos sí dicen que lo tienen en el plan de producto. Puedes verlo aquí ?: https://github.com/corretto/corretto-11/issues/165
  • Azul Zulu ¡Aquí si tenemos versión para macOS ARM! (recordemos que Apple Silicon – M1 es un procesador ARM) ¡e incluso para Java 8!  Por fin estamos de suerte ?
  • Bellsoft pues otra más que también tiene la versión que necesitamos: macOS Java 8 para ARM.

Así que al final lo encontramos, se puede ejecutar Java en macOS. Aunque muchos piensen que ya no es un lenguaje moderno como node.js y que no se usa tanto la verdad es que es necesario para muchas cosas.

El tesoro oculto ?

A pesar de tenerlo resuelto tenía la mosca detrás de la oreja. ¿Cómo es posible que Oracle, dueño de Java, no tenga una versión para macOS en Apple Silicon?

Una búsqueda un poco más exhaustiva nos dejó esta gema en un foro: https://community.oracle.com/tech/apps-infra/discussion/4479447/oracle-jdk-8-on-apple-m1-macbook

Así que parece que Oracle si se preocupó de Java 11 en el M1, aunque no sea fácil darse cuenta.

Y eso no es todo, Microsoft también está creando una versión de Java 16 para Apple silicon: https://github.com/microsoft/openjdk-aarch64/releases/tag/16-ea%2B10-macos

Pero… hey! ⚠️

Una cosa que hay que tener en cuenta es que he visto algunos vídeos que te muestran como instalar Java en un Apple M1, pero es descargando la versión x86 por lo que está ejecutando Java encima de Rosetta 2, lo que no suele ser lo deseado.

Por cierto, recordad que Brew es el amigo de los desarrolladores de Apple e incluso tiene un buscador para saber si tu herramienta favorita está disponible para macOS.

Santander Global Tech es la empresa de tecnología global, parte de la división de Technology and Operations (T&O) de Santander. Con más de 2.000 empleados y basada en Madrid, trabajamos para convertir al Santander en una plataforma abierta de servicios financieros.

Mira las posiciones que tenemos abiertas aquí para unirte a este equipazo y Be Tech! with Santander ?

Síguenos en LinkedIn y en Instagram.

Juan Tavira

Juan Tavira

Universia

Especialista, arquitecto y friki multidisciplinar apasionado de todas las innovaciones. Esto es fácil de decir por uno mismo, pero cuando lo dicen mis compañeros informáticos, mis amigos geeks de los juegos e incluso mi mujer, algo de verdad tendrá ;-). Me gusta construir violines como hobby. En ocasiones veo código.

 

👉 Mi perfil de LinkedIn

 

Otros posts