Cómo cambiar Java JDK en macOS: 5 errores de principiantes y su solución

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cómo cambiar la versión de Java (JDK) en macOS sin dolores de cabeza: guía para quienes están hartos de errores

\n\n

¿Alguna vez ha intentado ejecutar un proyecto antiguo en Java y este se cerraba con un error? ¿O, por el contrario, su nuevo IDE requiere JDK 17 y usted tiene JDK 8? Si trabaja en macOS, seguramente se ha encontrado con que cambiar la versión de Java es toda una odisea. Parece que el comando java -version vive su propia vida y no obedece sus deseos.

\n\n

En Stack Overflow, la pregunta «How to set or change the default Java (JDK) version on macOS?» ha acumulado miles de visitas y cientos de comentarios. La gente se confunde con las rutas, olvida JAVA_HOME y accidentalmente rompe el sistema. Aclaremos esto de una vez por todas: cómo gestionar JDK en Mac, qué errores acechan a los principiantes y cómo evitarlos.

\n\n

Este artículo no es documentación árida. Recorreremos el camino desde el caos total hasta una comprensión clara. ¡Allá vamos!

\n\n

¿Por qué macOS trabaja de forma tan «extraña» con Java?

\n\n

Lo primero que hay que entender: macOS es un sistema Unix y no le gusta que usted meta archivos manualmente en carpetas donde no deben estar. Apple instala JDK por defecto en /Library/Java/JavaVirtualMachines/, y utilidades del sistema como /usr/bin/java son solo envoltorios que miran su JAVA_HOME.

\n\n

El error más común es intentar renombrar o eliminar la carpeta JDK. ¡No lo haga! En su lugar, debe aprender a gestionar enlaces simbólicos y variables de entorno.

\n\n

Paso 1: Descubrir qué JDK tiene ya instalados

\n\n

Antes de cambiar nada, veamos con qué cuenta. Abra la Terminal y ejecute:

\n\n
/usr/libexec/java_home -V
\n\n

Verá algo como:

\n\n
Matching Java Virtual Machines (3):\n    17.0.6 (x86_64) "Oracle Corporation" - "Java SE 17.0.6" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home\n    11.0.18 (x86_64) "Oracle Corporation" - "Java SE 11.0.18" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home\n    1.8.0_361 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home
\n\n

Esta es la lista completa de JDK que el sistema conoce. Si instaló JDK mediante Homebrew o manualmente pero no aparece, significa que está en la carpeta incorrecta o no tiene la estructura adecuada.

\n\n

Error n.º 1: Pensar que export JAVA_HOME es permanente

\n\n

Los principiantes suelen escribir en la terminal:

\n\n
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home\njava -version  # muestra 17
\n\n

Y se alegran. Pero al cerrar la terminal y abrir una nueva, todo vuelve a la versión anterior. ¿Por qué? Porque export solo funciona en la sesión actual.

\n\n

Solución: Añada esta línea a su archivo de configuración del shell. Si usa zsh (shell estándar en macOS desde Catalina en adelante), edite el archivo ~/.zshrc:

\n\n
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc\nsource ~/.zshrc
\n\n

Si tiene bash (versiones antiguas de macOS), el archivo se llama ~/.bash_profile.

\n\n

Error n.º 2: Confundir java y javac

\n\n

Cambió JAVA_HOME, el comando java -version muestra la versión deseada, pero javac -version insiste en mostrar la antigua. ¿Le suena?

\n\n

Esto ocurre porque java y javac son archivos ejecutables diferentes. A veces pueden pertenecer a distintos JDK. Verifique dónde están:

\n\n
which java   # /usr/bin/java\nwhich javac  # /usr/bin/javac
\n\n

Si las rutas son iguales, el problema es que /usr/bin/java es un enlace simbólico que podría apuntar a una versión antigua. Actualícelo con la utilidad java_home:

\

Blogs

Book Recommendations