TP1.1 — Instalación de Java JDK 17
Objetivos
Este trabajo práctico le permitirá:
- Instalar el JDK 17 (Java Development Kit) en su sistema operativo
- Configurar las variables de entorno (
JAVA_HOME,PATH) - Verificar la instalación con los comandos
java,javacywhich java - Comprender la diferencia entre JDK, JRE y las diferentes distribuciones
Duración estimada: 20-30 minutos
¿Por qué Java 17?
| Razón | Detalle |
|---|---|
| LTS (Long Term Support) | Soporte a largo plazo por Oracle y la comunidad (hasta 2029+) |
| Spring Boot 3.x | Versión mínima requerida por Spring Boot 3 |
| Funcionalidades modernas | Records, sealed classes, pattern matching, text blocks |
| Estabilidad | Versión probada en producción desde 2021 |
- Eclipse Temurin (Adoptium) — Recomendado, gratuito, open source
- Oracle JDK — Gratis para desarrollo, licencia comercial en producción
- Amazon Corretto — Gratis, mantenido por Amazon
- Azul Zulu — Gratis, certificado
Recomendamos Eclipse Temurin para este curso.
Instalación en Windows
🪟 Haga clic aquí para la instalación en Windows (método gráfico)
Paso 1: Descargar el JDK 17
- Vaya a https://adoptium.net/
- Seleccione:
- Operating System: Windows
- Architecture: x64
- Package Type: JDK
- Version: 17 (LTS)
- Haga clic en "Latest LTS Release" para descargar el archivo
.msi
Paso 2: Instalar el JDK
- Haga doble clic en el archivo
.msidescargado - Siga el asistente de instalación
- IMPORTANTE: Durante la instalación, marque estas opciones:
- ✅ Add to PATH
- ✅ Set JAVA_HOME variable
- ✅ Associate .jar files
┌──────────────────────────────────────┐
│ Eclipse Temurin JDK 17 Setup │
│ │
│ ✅ Add to PATH │
│ ✅ Set JAVA_HOME variable │
│ ✅ Associate .jar │
│ │
│ Install to: C:\Program Files\ │
│ Eclipse Adoptium\jdk-17.0.x.x\ │
│ │
│ [Install] │
└──────────────────────────────────────┘
Paso 3: Verificar la instalación
Cierre todas las terminales abiertas, luego abra un nuevo PowerShell o CMD:
java -version
Resultado esperado:
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)
javac -version
Resultado esperado:
javac 17.0.13
Paso 4: Verificar JAVA_HOME
$env:JAVA_HOME
Resultado esperado:
C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
where.exe java
Resultado esperado:
C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot\bin\java.exe
Si JAVA_HOME no se define automáticamente
- Menú Inicio → escriba "variables de entorno"
- Haga clic en "Editar las variables de entorno del sistema"
- Haga clic en "Variables de entorno..."
- En Variables del sistema, haga clic en Nuevo:
- Nombre:
JAVA_HOME - Valor:
C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
- Nombre:
- Busque la variable
Path→ Editar → Nuevo:%JAVA_HOME%\bin
- OK en todas partes → Reinicie la terminal
🪟 Instalación en Windows con Chocolatey (alternativa rápida)
Si tiene Chocolatey instalado:
choco install temurin17
Verificación:
java -version
javac -version
$env:JAVA_HOME
where.exe java
Chocolatey configura automáticamente JAVA_HOME y el PATH.
🪟 Instalación en Windows con Scoop (alternativa rápida)
Si tiene Scoop instalado:
scoop bucket add java
scoop install temurin17-jdk
Verificación:
java -version
javac -version
$env:JAVA_HOME
where.exe java
Instalación en macOS
🍎 Instalación en macOS con Homebrew (Recomendado)
Paso 1: Instalar Homebrew (si aún no lo tiene)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Paso 2: Instalar el JDK 17
brew install --cask temurin@17
Paso 3: Verificar la instalación
java -version
Resultado esperado:
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode)
javac -version
Resultado esperado:
javac 17.0.13
Paso 4: Verificar la ruta y JAVA_HOME
which java
Resultado esperado:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java
/usr/libexec/java_home -v 17
Resultado esperado:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Paso 5: Configurar JAVA_HOME (permanente)
Abra su archivo de perfil de shell:
nano ~/.zshrc
Agregue al final:
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH
Recargue:
source ~/.zshrc
Verifique:
echo $JAVA_HOME
Resultado esperado:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
🍎 Instalación en macOS con SDKMAN! (alternativa)
Instalar SDKMAN!
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
Listar las versiones Java 17 disponibles
sdk list java | grep tem
Resultado (ejemplo):
Temurin | | 17.0.13 | tem | installed | 17.0.13-tem
Instalar
sdk install java 17.0.13-tem
Verificar
java -version
which java
echo $JAVA_HOME
Permite instalar múltiples versiones de Java y cambiar fácilmente:
sdk use java 17.0.13-tem # Usar Java 17
sdk use java 21.0.5-tem # Cambiar a Java 21
sdk default java 17.0.13-tem # Definir Java 17 por defecto
🍎 Instalación manual en macOS (descarga directa)
Paso 1: Descargar
- Vaya a https://adoptium.net/
- Seleccione macOS → aarch64 (Apple Silicon M1/M2/M3) o x64 (Intel)
- Descargue el archivo
.pkg
Paso 2: Instalar
Haga doble clic en el archivo .pkg y siga el asistente.
Paso 3: Configurar JAVA_HOME
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
Paso 4: Verificar
java -version
javac -version
which java
echo $JAVA_HOME
Instalación en Linux
🐧 Ubuntu / Debian (apt)
Paso 1: Actualizar los paquetes
sudo apt update && sudo apt upgrade -y
Paso 2: Instalar el JDK 17
Opción A — OpenJDK desde los repositorios oficiales:
sudo apt install openjdk-17-jdk -y
Opción B — Eclipse Temurin (recomendado para uniformidad):
sudo apt install -y wget apt-transport-https gpg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | \
gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-17-jdk -y
Paso 3: Verificar la instalación
java -version
Resultado esperado:
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)
javac -version
Resultado esperado:
javac 17.0.13
Paso 4: Verificar la ruta
which java
Resultado esperado:
/usr/bin/java
readlink -f $(which java)
Resultado esperado (muestra la ruta real):
/usr/lib/jvm/temurin-17-jdk-amd64/bin/java
Paso 5: Configurar JAVA_HOME
sudo nano /etc/environment
Agregue esta línea:
JAVA_HOME="/usr/lib/jvm/temurin-17-jdk-amd64"
O para OpenJDK:
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
Recargue:
source /etc/environment
echo $JAVA_HOME
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Si hay varias versiones de Java instaladas
sudo update-alternatives --config java
Esto muestra todas las versiones instaladas y le permite elegir:
Existen 2 opciones para la alternativa java.
Selección Ruta Prioridad Estado
------------------------------------------------------------
* 0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 modo automático
1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 modo manual
2 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 modo manual
Presione <Enter> para mantener el valor predeterminado[*] o escriba el número seleccionado: 1
Lo mismo para javac:
sudo update-alternatives --config javac
🐧 Fedora / CentOS / RHEL (dnf/yum)
Fedora
sudo dnf install java-17-openjdk-devel -y
CentOS / RHEL
sudo yum install java-17-openjdk-devel -y
Verificar
java -version
javac -version
which java
Configurar JAVA_HOME
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
echo $JAVA_HOME
Elegir la versión activa
sudo alternatives --config java
sudo alternatives --config javac
🐧 Arch Linux / Manjaro (pacman)
🐧 Instalación con SDKMAN! (todas las distribuciones)
Instalar SDKMAN!
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
Instalar Java 17
sdk list java | grep tem
sdk install java 17.0.13-tem
Verificar
java -version
javac -version
which java
echo $JAVA_HOME
Gestionar varias versiones
sdk list java # Ver todas las versiones disponibles
sdk install java 21.0.5-tem # Instalar Java 21 además
sdk use java 17.0.13-tem # Usar Java 17 para esta sesión
sdk default java 17.0.13-tem # Java 17 por defecto
🐧 Instalación manual (descarga directa)
Paso 1: Descargar
cd /tmp
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.13%2B11/OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz
Paso 2: Extraer
sudo mkdir -p /usr/lib/jvm
sudo tar -xzf OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz -C /usr/lib/jvm
Paso 3: Configurar
echo 'export JAVA_HOME=/usr/lib/jvm/jdk-17.0.13+11' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Paso 4: Verificar
java -version
javac -version
which java
echo $JAVA_HOME
Verificación final (todos los sistemas operativos)
Abra una nueva terminal y ejecute todos estos comandos:
1. Versión de Java
java -version
✅ Debe mostrar openjdk version "17.0.x"
2. Compilador de Java
javac -version
✅ Debe mostrar javac 17.0.x
3. ¿Dónde está instalado Java?
# macOS / Linux
which java
readlink -f $(which java) # ruta real (Linux)
# Windows PowerShell
where.exe java
4. ¿JAVA_HOME está definido?
# macOS / Linux
echo $JAVA_HOME
# Windows PowerShell
$env:JAVA_HOME
# Windows CMD
echo %JAVA_HOME%
✅ Debe mostrar una ruta hacia el JDK 17
5. Prueba rápida — compilar y ejecutar un programa
Cree un archivo Hello.java:
public class Hello {
public static void main(String[] args) {
System.out.println("Java " + System.getProperty("java.version") + " fonctionne !");
System.out.println("JAVA_HOME = " + System.getProperty("java.home"));
}
}
Compile y ejecute:
javac Hello.java
java Hello
Resultado esperado:
Java 17.0.13 fonctionne !
JAVA_HOME = /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Limpie:
rm Hello.java Hello.class
Resolución de problemas
❌ java no es reconocido como comando
| Causa | Solución |
|---|---|
| Java no está instalado | Siga los pasos de instalación arriba |
| PATH no configurado | Agregue JAVA_HOME/bin al PATH |
| Terminal no recargada | Cierre y vuelva a abrir la terminal |
Windows: Verifique que %JAVA_HOME%\bin esté en el PATH del sistema.
macOS/Linux: Verifique que su ~/.zshrc o ~/.bashrc contenga:
export JAVA_HOME=...
export PATH=$JAVA_HOME/bin:$PATH
❌ Se muestra una versión incorrecta de Java
Si java -version muestra Java 8, 11 o 21 en vez de 17:
Windows:
- Verifique el PATH: la versión 17 debe aparecer antes que las otras
- Elimine las versiones antiguas del PATH
macOS:
/usr/libexec/java_home -V # Lista todas las versiones
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
java -version # Ahora debe mostrar 17
Linux:
sudo update-alternatives --config java # Elegir la versión 17
sudo update-alternatives --config javac
❌ JAVA_HOME no está definido
Windows:
- Menú Inicio → "variables de entorno"
- Variables del sistema → Nuevo
- Nombre:
JAVA_HOME, Valor:C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
macOS:
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc
source ~/.zshrc
Linux:
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.bashrc
source ~/.bashrc
❌ Diferencia entre java y javac
| Comando | Rol | Incluido en |
|---|---|---|
java | Ejecutar un programa Java compilado | JRE y JDK |
javac | Compilar el código fuente .java en .class | Solo JDK |
Si java funciona pero no javac → ha instalado el JRE en vez del JDK. Reinstale el JDK.
❓ JDK vs JRE vs JVM — ¿cuál es la diferencia?
┌─────────────────────────────────────┐
│ JDK │
│ (Java Development Kit) │
│ ┌────────────────────────────────┐ │
│ │ JRE │ │
│ │ (Java Runtime Environment) │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ JVM │ │ │
│ │ │ (Java Virtual Machine) │ │ │
│ │ │ Exécute le bytecode │ │ │
│ │ └──────────────────────────┘ │ │
│ │ + Bibliothèques standard │ │
│ │ + java (exécuter) │ │
│ └────────────────────────────────┘ │
│ + javac (compiler) │
│ + jdb (debugger) │
│ + javadoc, jar, jshell... │
└─────────────────────────────────────┘
| Componente | Qué hace | Para quién |
|---|---|---|
| JVM | Ejecuta el bytecode Java | Todos |
| JRE | JVM + bibliotecas para ejecutar | Usuarios finales |
| JDK | JRE + herramientas para desarrollar (javac, jdb...) | Desarrolladores ← Este es el que necesita |
Checklist de validación
Antes de pasar al siguiente TP (Instalación de Maven), verifique:
-
java -versionmuestra 17.0.x -
javac -versionmuestra 17.0.x -
which java(owhere.exe java) retorna una ruta válida -
echo $JAVA_HOME(o$env:JAVA_HOME) está definido - El programa
Hello.javacompila y se ejecuta correctamente
Próximo paso
¡Java 17 está instalado! Ahora continúe con la instalación de Maven:
➡️ Siguiente TP: Instalación de Maven 3.9.x