Qual é a diferença entre a JRE (Java Runtime Environment) e o JDK (Java Development Kit)?
Questão
Qual é a diferença entre a JRE (Java Runtime Environment) e o JDK (Java Development Kit)?
- Layout gráfico: fundo escuro com o enunciado no topo e cinco caixas retangulares alinhadas verticalmente, cada uma contendo uma alternativa (A a E).
- Cada caixa tem borda claro-azulada e dentro o texto da alternativa em branco; à esquerda de cada caixa há a letra da opção (A, B, C, D, E) destacada.
- Não há tabelas, fórmulas matemáticas ou diagramas além das caixas de alternativa; a questão é apenas texto com o layout descrito.
Alternativas
A) O JDK e a JRE são termos intercambiáveis para se referir à mesma estrutura de software do Java, apenas diferindo nas preferências de uso.
B) A JRE é necessária apenas para executar aplicativos Java, enquanto o JDK é usado apenas para desenvolver e compilar programas Java.
C) Ambos, JRE e JDK, fornecem apenas ferramentas para a execução de aplicativos Java, mas não incluem as bibliotecas necessárias para desenvolver novos programas.
D) A JRE é uma versão mais avançada do JDK, incluindo todas as funcionalidades de desenvolvimento e execução de aplicativos Java.
E) O JDK inclui a JRE, mas a JRE não contém o compilador Java (javac) nem as ferramentas de desenvolvimento.
Explicação
A diferença central é o propósito e o conjunto de ferramentas incluídas:
-
JRE (Java Runtime Environment): é o ambiente necessário para executar aplicações Java. Ela inclui a JVM (Java Virtual Machine) e as bibliotecas padrão (APIs) para rodar programas já compilados (bytecode), mas não traz ferramentas de desenvolvimento, como o compilador.
-
JDK (Java Development Kit): é o kit voltado para desenvolver aplicações Java. Ele inclui tudo o que a JRE tem e mais as ferramentas de desenvolvimento, principalmente o compilador
javac, além de utilitários como ferramentas de empacotamento e depuração (dependendo da distribuição).
Por isso, a alternativa correta é a E, pois descreve exatamente a relação: o JDK inclui a JRE, enquanto a JRE não inclui javac nem as ferramentas de desenvolvimento.
Observação: a alternativa B é incompleta/enganosa ao dizer que a JDK é “apenas” para desenvolver e compilar; na prática, ao conter a JRE, o JDK também pode ser usado para executar programas Java.