Pular para o conteúdo principal

TP1.1 — Instalação do Java JDK 17

Objetivos​

Este exercício prático permitirá que você:

  • Instale o JDK 17 (Java Development Kit) no seu sistema operacional
  • Configure as variáveis de ambiente (JAVA_HOME, PATH)
  • Verifique a instalação com os comandos java, javac e which java
  • Entenda a diferença entre JDK, JRE e as diferentes distribuições

Duração estimada: 20-30 minutos


Por que Java 17?​

MotivoDetalhe
LTS (Long Term Support)Suporte de longo prazo pela Oracle e comunidade (até 2029+)
Spring Boot 3.xVersão mínima exigida pelo Spring Boot 3
Funcionalidades modernasRecords, sealed classes, pattern matching, text blocks
EstabilidadeVersão comprovada em produção desde 2021
Qual distribuição escolher?
  • Eclipse Temurin (Adoptium) — Recomendado, gratuito, open source
  • Oracle JDK — Gratuito para desenvolvimento, licença comercial em produção
  • Amazon Corretto — Gratuito, mantido pela Amazon
  • Azul Zulu — Gratuito, certificado

Recomendamos o Eclipse Temurin para este curso.


Instalação no Windows​

🪟 Clique aqui para instalação no Windows (modo gráfico)

Passo 1: Baixar o JDK 17​

  1. Acesse https://adoptium.net/
  2. Selecione:
    • Operating System: Windows
    • Architecture: x64
    • Package Type: JDK
    • Version: 17 (LTS)
  3. Clique em "Latest LTS Release" para baixar o arquivo .msi

Passo 2: Instalar o JDK​

  1. Dê um duplo clique no arquivo .msi baixado
  2. Siga o assistente de instalação
  3. IMPORTANTE: Durante a instalação, marque estas opções:
    • ✅ 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] │
└──────────────────────────────────────┘

Passo 3: Verificar a instalação​

Feche todos os terminais abertos, depois abra um novo PowerShell ou 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

Passo 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

Se JAVA_HOME não for definido automaticamente​

  1. Menu Iniciar → digite "variáveis de ambiente"
  2. Clique em "Editar variáveis de ambiente do sistema"
  3. Clique em "Variáveis de ambiente..."
  4. Em Variáveis do sistema, clique em Novo:
    • Nome: JAVA_HOME
    • Valor: C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
  5. Encontre a variável Path → Editar → Novo:
    • %JAVA_HOME%\bin
  6. OK em tudo → Reinicie o terminal
🪟 Instalação Windows com Chocolatey (alternativa rápida)

Se você tem o Chocolatey instalado:

choco install temurin17

Verificação:

java -version
javac -version
$env:JAVA_HOME
where.exe java

O Chocolatey configura automaticamente o JAVA_HOME e o PATH.

🪟 Instalação Windows com Scoop (alternativa rápida)

Se você tem o Scoop instalado:

scoop bucket add java
scoop install temurin17-jdk

Verificação:

java -version
javac -version
$env:JAVA_HOME
where.exe java

Instalação no macOS​

🍎 Instalação macOS com Homebrew (Recomendado)

Passo 1: Instalar o Homebrew (se ainda não tiver)​

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Passo 2: Instalar o JDK 17​

brew install --cask temurin@17

Passo 3: Verificar a instalação​

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

Passo 4: Verificar o caminho e 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

Passo 5: Configurar JAVA_HOME (permanente)​

Abra seu arquivo de perfil do shell:

nano ~/.zshrc

Adicione ao final:

export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH

Recarregue:

source ~/.zshrc

Verifique:

echo $JAVA_HOME

Resultado esperado:

/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
🍎 Instalação macOS com SDKMAN! (alternativa)

Instalar o SDKMAN!​

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

Listar as versões Java 17 disponíveis​

sdk list java | grep tem

Resultado (exemplo):

 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
Vantagem do SDKMAN!

Permite instalar múltiplas versões do Java e alternar facilmente:

sdk use java 17.0.13-tem    # Usar Java 17
sdk use java 21.0.5-tem # Alternar para Java 21
sdk default java 17.0.13-tem # Definir Java 17 como padrão
🍎 Instalação macOS manual (download direto)

Passo 1: Baixar​

  1. Acesse https://adoptium.net/
  2. Selecione macOS → aarch64 (Apple Silicon M1/M2/M3) ou x64 (Intel)
  3. Baixe o arquivo .pkg

Passo 2: Instalar​

Dê um duplo clique no arquivo .pkg e siga o assistente.

Passo 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

Passo 4: Verificar​

java -version
javac -version
which java
echo $JAVA_HOME

Instalação no Linux​

🐧 Ubuntu / Debian (apt)

Passo 1: Atualizar os pacotes​

sudo apt update && sudo apt upgrade -y

Passo 2: Instalar o JDK 17​

Opção A — OpenJDK dos repositórios oficiais:

sudo apt install openjdk-17-jdk -y

Opção B — Eclipse Temurin (recomendado para uniformidade):

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

Passo 3: Verificar a instalação​

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

Passo 4: Verificar o caminho​

which java

Resultado esperado:

/usr/bin/java
readlink -f $(which java)

Resultado esperado (mostra o caminho real):

/usr/lib/jvm/temurin-17-jdk-amd64/bin/java

Passo 5: Configurar JAVA_HOME​

sudo nano /etc/environment

Adicione esta linha:

JAVA_HOME="/usr/lib/jvm/temurin-17-jdk-amd64"

Ou para OpenJDK:

JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

Recarregue:

source /etc/environment
echo $JAVA_HOME
Alternativa — em ~/.bashrc
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Se várias versões do Java estiverem instaladas​

sudo update-alternatives --config java

Isso mostra todas as versões instaladas e permite escolher:

Existem 2 escolhas para a alternativa java.

Seleção Caminho Prioridade 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

Pressione <Enter> para manter o padrão[*] ou digite o número selecionado: 1

O mesmo 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

Escolher a versão ativa​

sudo alternatives --config java
sudo alternatives --config javac
🐧 Arch Linux / Manjaro (pacman)
sudo pacman -S jdk17-openjdk

Escolher a versão ativa​

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

Verificar​

java -version
javac -version
which java
echo $JAVA_HOME
🐧 Instalação com SDKMAN! (todas as distribuições)

Instalar o 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

Gerenciar múltiplas versões​

sdk list java                      # Ver todas as versões disponíveis
sdk install java 21.0.5-tem # Instalar Java 21 também
sdk use java 17.0.13-tem # Usar Java 17 nesta sessão
sdk default java 17.0.13-tem # Java 17 como padrão
🐧 Instalação manual (download direto)

Passo 1: Baixar​

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

Passo 2: Extrair​

sudo mkdir -p /usr/lib/jvm
sudo tar -xzf OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz -C /usr/lib/jvm

Passo 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

Passo 4: Verificar​

java -version
javac -version
which java
echo $JAVA_HOME

Verificação final (todos os SOs)​

Abra um novo terminal e execute todos estes comandos:

1. Versão do Java​

java -version

✅ Deve exibir openjdk version "17.0.x"

2. Compilador Java​

javac -version

✅ Deve exibir javac 17.0.x

3. Onde o Java está instalado?​

# macOS / Linux
which java
readlink -f $(which java) # caminho 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%

✅ Deve exibir um caminho para o JDK 17

5. Teste rápido — compilar e executar um programa​

Crie um arquivo Hello.java:

public class Hello {
public static void main(String[] args) {
System.out.println("Java " + System.getProperty("java.version") + " funciona!");
System.out.println("JAVA_HOME = " + System.getProperty("java.home"));
}
}

Compile e execute:

javac Hello.java
java Hello

Resultado esperado:

Java 17.0.13 funciona!
JAVA_HOME = /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

Limpe:

rm Hello.java Hello.class

Resolução de problemas​

❌ java não é reconhecido como comando
CausaSolução
Java não está instaladoSiga os passos de instalação acima
PATH não configuradoAdicione JAVA_HOME/bin ao PATH
Terminal não recarregadoFeche e reabra o terminal

Windows: Verifique se %JAVA_HOME%\bin está no PATH do sistema.

macOS/Linux: Verifique se seu ~/.zshrc ou ~/.bashrc contém:

export JAVA_HOME=...
export PATH=$JAVA_HOME/bin:$PATH
❌ Versão errada do Java exibida

Se java -version mostrar Java 8, 11 ou 21 em vez de 17:

Windows:

  1. Verifique o PATH: a versão 17 deve aparecer antes das outras
  2. Remova as versões antigas do PATH

macOS:

/usr/libexec/java_home -V          # Lista todas as versões
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
java -version # Deve agora exibir 17

Linux:

sudo update-alternatives --config java    # Escolher a versão 17
sudo update-alternatives --config javac
❌ JAVA_HOME não está definido

Windows:

  1. Menu Iniciar → "variáveis de ambiente"
  2. Variáveis do sistema → Novo
  3. Nome: 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
❌ Diferença entre java e javac
ComandoFunçãoIncluído em
javaExecutar um programa Java compiladoJRE e JDK
javacCompilar o código fonte .java em .classApenas JDK

Se java funciona mas javac não → você instalou apenas o JRE em vez do JDK. Reinstale o JDK.

❓ JDK vs JRE vs JVM — qual a diferença?
┌─────────────────────────────────────┐
│ JDK │
│ (Java Development Kit) │
│ ┌────────────────────────────────┐ │
│ │ JRE │ │
│ │ (Java Runtime Environment) │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ JVM │ │ │
│ │ │ (Java Virtual Machine) │ │ │
│ │ │ Executa o bytecode │ │ │
│ │ └──────────────────────────┘ │ │
│ │ + Bibliotecas padrão │ │
│ │ + java (executar) │ │
│ └────────────────────────────────┘ │
│ + javac (compilar) │
│ + jdb (debugger) │
│ + javadoc, jar, jshell... │
└─────────────────────────────────────┘
ComponenteO que fazPara quem
JVMExecuta o bytecode JavaTodos
JREJVM + bibliotecas para executarUsuários finais
JDKJRE + ferramentas para desenvolver (javac, jdb...)Desenvolvedores ← É este que você precisa

Checklist de validação​

Antes de passar para o próximo TP (Instalação do Maven), verifique:

  • java -version exibe 17.0.x
  • javac -version exibe 17.0.x
  • which java (ou where.exe java) retorna um caminho válido
  • echo $JAVA_HOME (ou $env:JAVA_HOME) está definido
  • O programa Hello.java compila e executa corretamente

Próxima Etapa​

Java 17 está instalado! Agora prossiga para a instalação do Maven:

➡️ Próximo TP: Instalação do Maven 3.9.x


⬅️ Voltar ao Módulo 1