Antes de sumarte a una misión con múltiples microservicios Quarkus, es clave contar con un entorno de desarrollo flexible, limpio y fácil de mantener.
En esta guía te muestro cómo instalar Java, GraalVM, Mandrel, Maven y Quarkus CLI usando SDKMAN!, una herramienta que con un solo comando simplifica la instalación y te permite cambiar entre distintas versiones de Java automáticamente.
🧰 ¿Qué es SDKMAN!?
SDKMAN! es un gestor de versiones para herramientas del ecosistema Java: JDKs, Maven, Gradle, Quarkus CLI y más.
¿Por qué usarlo?
- Permite tener múltiples versiones instaladas sin conflictos
- Cambia automáticamente
JAVA_HOMEal alternar versiones - Ideal para trabajar con diferentes proyectos que usan distintas versiones de Java
Quarkus soporta Java 17 (mínima) y Java 21 (recomendada).
📥 Instalando SDKMAN!
Funciona en Linux, macOS y WSL (Windows Subsystem for Linux).
1. Instala SDKMAN!:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"2. Abre una nueva ventana del terminal y verifica la instalación:
sdk version☕ Instalando Maven y Quarkus CLI
Con SDKMAN! instalado, ejecuta estos comandos:
sdk install java 21.0.9-tem
sdk install maven
sdk install quarkusVerifica que todo quedó operativo:
java -version
mvn -v
quarkus --version¿Qué versiones se instalaron?
| Herramienta | Versión instalada |
|---|---|
| Java | Última LTS de Eclipse Temurin (Adoptium) |
| Maven | Última versión estable |
| Quarkus CLI | Última versión estable |
¿OpenJDK, Adoptium, Temurin? Aclaremos la confusión
Estos términos suelen generar dudas. Aquí la explicación simple:
| Término | ¿Qué es? |
|---|---|
| OpenJDK | La implementación open source de Java. Es el código fuente base, no un instalador. |
| Eclipse Adoptium | Un proyecto de la Eclipse Foundation que construye y distribuye binarios de OpenJDK. Antes se llamaba AdoptOpenJDK. |
| Temurin | El nombre de la distribución de OpenJDK que produce Adoptium. Es lo que realmente instalas. |
En resumen: Temurin son binarios listos para usar de OpenJDK, producidos por Adoptium.
Compatibilidad con Quarkus y RHBQ
| Distribución | Quarkus (comunidad) | RHBQ |
|---|---|---|
| Temurin (Adoptium) | ✅ Soportado | ✅ Soportado en modo JVM |
| Red Hat build of OpenJDK | ✅ Soportado | ✅ Soportado (recomendado para producción) |
📘 Para RHBQ en producción: Red Hat recomienda usar Red Hat build of OpenJDK para soporte completo. Sin embargo, Temurin es válido para desarrollo y para modo JVM en producción (el soporte de Red Hat se limita a problemas en Quarkus, no en la JVM).
⌨️ Autocompletado de Quarkus CLI
Para que la terminal sugiera y complete comandos mientras escribes:
echo "source <(quarkus completion)" >> ~/.bashrc # o ~/.zshrc- Usa
~/.bashrcpara Bash (común en Linux y WSL) - Usa
~/.zshrcpara Zsh (predeterminado en macOS)
💡 ¿No sabes cuál tienes? Ejecuta
echo $SHELL
🔧 Instalando otras versiones de Java
Ver versiones disponibles de Temurin
sdk list java | grep temVerás algo como:
Temurin | | 25.0.1 | tem | | 25.0.1-tem
| | 24.0.2 | tem | | 24.0.2-tem
| | 23.0.2 | tem | | 23.0.2-tem
| >>> | 21.0.9 | tem | installed | 21.0.9-tem
| | 17.0.17 | tem | | 17.0.17-tem
| | 11.0.29 | tem | | 11.0.29-tem Instalar una versión específica
sdk install java 17.0.17-tem🚀 Instalando GraalVM o Mandrel (para ejecutables nativos)
Si quieres compilar tu aplicación como ejecutable nativo (arranque en milisegundos, menor consumo de memoria), necesitas GraalVM o Mandrel.
| Opción | ¿Qué es? | ¿Cuándo usarla? |
|---|---|---|
| Mandrel | Versión de GraalVM optimizada por Red Hat para Quarkus | Recomendada para Quarkus y RHBQ |
| GraalVM CE | Versión comunitaria completa de GraalVM | Si Mandrel no está disponible para tu plataforma |
📘 Para entender cuándo conviene usar ejecutables nativos, consulta JAR vs ejecutable nativo en Quarkus.
Instalar Mandrel
1. Ver versiones disponibles:
sdk list java | grep mandrelEl versionado de Mandrel usa un esquema como 23.1.9.r21-mandrel, donde r21 indica que está basado en OpenJDK 21.
2. Instalar la última versión:
sdk install java 23.1.9.r21-mandrel⚠️ Mandrel no está disponible en macOS con arquitectura Intel (amd64/x86). En ese caso, instala GraalVM CE o ejecuta Mandrel desde un contenedor.
3. Configurar GRAALVM_HOME (GraalVM y Mandrel):
SDKMAN! no configura automáticamente GRAALVM_HOME, así que debes hacerlo manualmente.
Agrega al final de tu archivo de entorno (~/.bashrc o ~/.zshrc):
# Configuración para ejecutables nativos con Quarkus
export GRAALVM_HOME=$(sdk home java 23.1.9.r21-mandrel)4. Recarga y verifica:
source ~/.zshrc # o ~/.bashrc
echo $GRAALVM_HOMEInstalar GraalVM CE (alternativa)
Si no puedes usar Mandrel:
sdk list java | grep graalce
sdk install java 21.0.2-graalceLuego configura GRAALVM_HOME.
📘 Para más detalles sobre GraalVM vs Mandrel, consulta Ejecutables nativos en Quarkus: GraalVM, Mandrel y el runtime oculto.
🧭 Gestionar versiones de Java
Una vez que tengas varias versiones instaladas, puedes alternar entre ellas:
Establecer versión predeterminada (global)
sdk default java 21.0.9-temEsta será la versión que se use en todas las terminales nuevas.
Usar una versión solo en la terminal actual
sdk use java 17.0.17-temÚtil cuando trabajas en un proyecto que requiere una versión específica.
Ver qué versión estás usando
sdk current java🔄 Mantener todo actualizado
Ejecuta periódicamente:
sdk upgrade java
sdk upgrade maven
sdk upgrade quarkus📋 Resumen de comandos SDKMAN!
| Comando | Descripción |
|---|---|
sdk install <tool> | Instala la última versión |
sdk install <tool> <version> | Instala una versión específica |
sdk list <tool> | Lista versiones disponibles |
sdk use <tool> <version> | Usa una versión solo en esta terminal |
sdk default <tool> <version> | Establece versión predeterminada global |
sdk current <tool> | Muestra la versión actual en uso |
sdk upgrade <tool> | Actualiza a la última versión |
sdk home <tool> <version> | Muestra el directorio de instalación |
Todo listo. Ya puedes comenzar tus misiones por el Quarkiverso. ¡Buen viaje! 🚀

