Saltar al contenido principal

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, javac y which java
  • Comprender la diferencia entre JDK, JRE y las diferentes distribuciones

Duración estimada: 20-30 minutos


¿Por qué Java 17?​

RazónDetalle
LTS (Long Term Support)Soporte a largo plazo por Oracle y la comunidad (hasta 2029+)
Spring Boot 3.xVersión mínima requerida por Spring Boot 3
Funcionalidades modernasRecords, sealed classes, pattern matching, text blocks
EstabilidadVersión probada en producción desde 2021
¿Qué distribución elegir?
  • 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​

  1. Vaya a https://adoptium.net/
  2. Seleccione:
    • Operating System: Windows
    • Architecture: x64
    • Package Type: JDK
    • Version: 17 (LTS)
  3. Haga clic en "Latest LTS Release" para descargar el archivo .msi

Paso 2: Instalar el JDK​

  1. Haga doble clic en el archivo .msi descargado
  2. Siga el asistente de instalación
  3. 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​

  1. Menú Inicio → escriba "variables de entorno"
  2. Haga clic en "Editar las variables de entorno del sistema"
  3. Haga clic en "Variables de entorno..."
  4. En Variables del sistema, haga clic en Nuevo:
    • Nombre: JAVA_HOME
    • Valor: C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
  5. Busque la variable Path → Editar → Nuevo:
    • %JAVA_HOME%\bin
  6. 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
Ventaja de SDKMAN!

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​

  1. Vaya a https://adoptium.net/
  2. Seleccione macOS → aarch64 (Apple Silicon M1/M2/M3) o x64 (Intel)
  3. 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
Alternativa — en ~/.bashrc
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)
sudo pacman -S jdk17-openjdk

Elegir la versión activa​

sudo archlinux-java status
sudo archlinux-java set java-17-openjdk

Verificar​

java -version
javac -version
which java
echo $JAVA_HOME
🐧 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
CausaSolución
Java no está instaladoSiga los pasos de instalación arriba
PATH no configuradoAgregue JAVA_HOME/bin al PATH
Terminal no recargadaCierre 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:

  1. Verifique el PATH: la versión 17 debe aparecer antes que las otras
  2. 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:

  1. Menú Inicio → "variables de entorno"
  2. Variables del sistema → Nuevo
  3. 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
ComandoRolIncluido en
javaEjecutar un programa Java compiladoJRE y JDK
javacCompilar el código fuente .java en .classSolo 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... │
└─────────────────────────────────────┘
ComponenteQué hacePara quién
JVMEjecuta el bytecode JavaTodos
JREJVM + bibliotecas para ejecutarUsuarios finales
JDKJRE + 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 -version muestra 17.0.x
  • javac -version muestra 17.0.x
  • which java (o where.exe java) retorna una ruta válida
  • echo $JAVA_HOME (o $env:JAVA_HOME) está definido
  • El programa Hello.java compila 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


⬅️ Volver al Módulo 1