Ir al contenido
Brayan Diaz C
Volver

Cómo instalar y configurar Java en Ubuntu con SDKMAN

Cuarto lenguaje de la serie: Java. En este artículo vas a aprender exactamente cómo instalarlo en Ubuntu o WSL con SDKMAN!, el gestor de versiones de todo el ecosistema Java (JDK, Maven, Gradle y más), y a elegir la versión correcta para tu trabajo.

Java sigue siendo la columna del desarrollo empresarial y de las APIs de alto rendimiento, y tarde o temprano aparece en tu camino: un cliente, una integración, una herramienta que lo exige. Lo aprendí configurando entornos ajenos: la mitad de los problemas con tooling Java nacen de un JDK mal elegido o mal instalado.

El problema es que Java tiene demasiadas formas de instalarse (apt, paquetes del fabricante, descargas manuales) y cada una deja el JDK en un lugar distinto. Cuando una herramienta no encuentra el Java que espera, el diagnóstico se vuelve arqueología.

Vamos a ver:

  1. Instalar SDKMAN! y dejarlo cargado en tu shell.
  2. Elegir e instalar la versión correcta de Java (las LTS).
  3. Cambiar de versión y fijar la predeterminada en un comando.
  4. Maven y Gradle: cuándo sí y cuándo no.

Al final tendrás Java bajo control, con la versión que cada herramienta necesita.

Nota

Esta guía asume la base de la serie: Setup Ubuntu y WSL para desarrollo profesional.

Tabla de contenidos

Tabla de contenidos

Paso 1: Instala las dependencias básicas

SDKMAN! necesita poco:

sudo apt update && sudo apt install -y curl zip unzip ca-certificates

Paso 2: Instala SDKMAN!

Un solo comando:

curl -s "https://get.sdkman.io" | bash

El instalador agrega su inicialización a tu shell automáticamente. Cárgalo en la sesión actual y verifica:

source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
Nota

A diferencia de nodenv, pyenv o rbenv, aquí no hay nada que compilar ni plugins que clonar: SDKMAN! descarga los JDK ya construidos. Por eso este post es el más corto de la etapa.

Paso 3: Instala Java (la LTS correcta)

Consulta el catálogo:

sdk list java

Verás decenas de distribuciones. Mi recomendación: Temurin (la distribución open source de Adoptium) y siempre una LTS:

sdk install java 21.0.7-tem
Importante

Java publica una LTS (soporte de largo plazo) cada dos años: 17, 21, 25… Para trabajar, usa siempre una LTS: son las que reciben mantenimiento por años y contra las que valida el tooling. Si un proyecto te exige otra versión, la instalas al lado sin conflicto. La versión exacta (21.0.x-tem) puede variar: usa la que muestre sdk list java.

Verifica:

java -version
javac -version
sdk current java

Paso 4: Cambia de versión cuando lo necesites

Aquí está la gracia de SDKMAN!. Fijar la predeterminada:

sdk default java 21.0.7-tem

Cambiar solo en la sesión actual (por ejemplo, para probar algo en otra LTS):

sdk use java 17.0.16-tem

Y si un proyecto necesita su propia versión, créale un .sdkmanrc:

cd mi-proyecto
sdk env init
sdk env

Es el equivalente al .node-version o .ruby-version que ya conoces de la serie.

Paso 5: Maven y Gradle (opcionales)

Los dos grandes constructores del ecosistema Java, e instalarlos es un comando cada uno:

sdk install maven
sdk install gradle
mvn -version
gradle -version

Y revisa el estado completo de tu entorno cuando quieras:

sdk current
Consejo

Regla para no mezclar entornos: si un proyecto trae su propio wrapper (./mvnw o ./gradlew), úsalo siempre; garantiza la versión exacta que el proyecto espera. El Maven o Gradle global es para tu terminal y tus experimentos.

Solución de problemas comunes

sdk: command not found

El shell no cargó la inicialización. Agrega esto al final de tu ~/.zshrc (o ~/.bashrc) y reinicia la terminal:

export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"

Falla la instalación de Java

Mantenimiento

Actualizar SDKMAN! y sus herramientas:

sdk selfupdate
sdk upgrade

Y para eliminar una versión que ya no uses:

sdk uninstall java 17.0.16-tem

Conclusión

Java instalado desde un solo lugar, con la LTS correcta para lo que construyes y cambio de versión en un comando: el ecosistema más veterano de la serie, gestionado con la misma filosofía que los demás.

Si esto te fue útil, el artículo relacionado es el paso lógico: Setup Ubuntu y WSL para desarrollo profesional, la base sobre la que monta toda esta etapa.

El martes publico esta misma configuración para macOS. Si no te lo quieres perder, suscríbete al newsletter en la portada del blog.

Recursos adicionales


Comparte este post:

Post siguiente
Cómo instalar y configurar Ruby en macOS con rbenv