Entendendo o Ecossistema Java
JVM, JRE e JDK sem confusão
Responsabilidades de cada componente e como trabalham juntos em desenvolvimento e produção.
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