Entendendo o Ecossistema Java

JVM, JRE e JDK sem confusão

Responsabilidades de cada componente e como trabalham juntos em desenvolvimento e produção.

Intermediário 35 min 18 pontos Leitura 0%

Nesta aula você vai

  • Definir JVM, JRE e JDK
  • Explicar o fluxo compilar → executar
  • Saber o que instalar em cada cenário

JVM, JRE e JDK sem confusão

Objetivos

Nesta aula você vai:

  • Diferenciar JVM, JRE e JDK com clareza
  • Entender o fluxo do código fonte até a execução
  • Saber qual pacote instalar para desenvolver ou só executar

Os três componentes

JVM (Java Virtual Machine)

A JVM executa o bytecode. É o motor que interpreta ou compila (JIT) o .class em instruções da máquina real.

Sem JVM, não há execução de programas Java.

JRE (Java Runtime Environment)

O JRE era o pacote para executar aplicações: JVM + bibliotecas padrão (java.base, etc.). Em versões modernas, a Oracle unificou a oferta: para usuários finais, o termo JRE aparece menos — fala-se em Java Runtime ou JDK modular.

Na prática atual: para rodar um JAR você precisa de uma JVM + bibliotecas; para desenvolver você instala o JDK.

JDK (Java Development Kit)

O JDK inclui tudo para desenvolver:

  • Compilador (javac)
  • Ferramentas (jar, javadoc, jlink, etc.)
  • JVM para testar localmente
  • Bibliotecas e APIs

Regra prática: se você vai programar ou compilar, instale o JDK.

Fluxo simplificado

Código .java  →  javac (JDK)  →  bytecode .class  →  JVM  →  execução

Em produção, muitas vezes só o artefato compilado (JAR) e uma JVM são necessários — por isso imagens Docker podem usar apenas o runtime.

Desenvolvimento vs produção

Cenário O que você precisa
Estudar e compilar no PC JDK completo
Rodar um JAR de terceiros JVM + libs (runtime)
CI/CD que só compila JDK no agente de build
Servidor em produção JVM (muitas vezes em imagem mínima)

Erro comum

Instalar só o runtime e tentar rodar javac — o comando não existe. Solução: instalar JDK ou configurar JAVA_HOME apontando para um JDK.

Resumo

  • JVM executa bytecode
  • JRE/runtime foca em executar (cenário de usuário ou servidor)
  • JDK é para desenvolver: compilador + ferramentas + JVM
  • Para este curso e para desenvolvimento, o alvo da instalação é sempre o JDK