JRE vs SDK
Java é uma linguagem de programação usada por muitas pessoas para criar pequenos programas que podem ser executados em vários sistemas operacionais e até na Internet. O programa resultante não é compilado no código nativo de qualquer sistema operacional porque isso faria com que o programa resultante não fosse executado em outros sistemas operacionais. O programa é compilado em algo chamado java bytecode que não é entendido por nenhum sistema operacional.
Para executar um bytecode em java, você precisa ter um programa que traduza o bytecode nos comandos nativos correspondentes do sistema operacional. Essa é a função do Java Runtime Environment ou JRE. O JRE é simplesmente um programa que precisa ser instalado em um computador para executar programas Java. Existem versões do JRE para quase todos os sistemas operacionais que executam programas Java em todos esses sistemas.
O Java SDK ou Software Development Kit é um pacote destinado a conter todas as ferramentas necessárias para criar programas na linguagem de programação Java. Uma parte do pacote é o JRE, onde os programas podem ser executados e testados. Junto com o JRE, existem ferramentas como um compilador, um depurador, um arquivador e muito mais. As ferramentas incluídas no pacote também são específicas do ambiente nativo para que sejam executadas corretamente.
Devido ao grande número de programas que foram adicionados ao SDK para tornar possível e mais fácil criar programas java, o tamanho do pacote SDK é consideravelmente maior que o pacote JRE. Isso se traduz diretamente em um tempo de download muito maior se você estiver obtendo o pacote da Internet. É bom saber se você precisa do SDK ou apenas do JRE. O SDK é necessário apenas para aqueles que pretendem criar programas com Java, mas para a maioria das pessoas apenas o JRE é necessário.
Esses nomes mudaram um pouco com o passar do tempo. O JRE agora é chamado JVM ou Java Virtual Machine, enquanto o Java SDK agora é conhecido como Java Development Kit.
Resumo:
1. JRE é o programa que traduz o bytecode java no código nativo do sistema operacional, enquanto o SDK inclui o JRE e ferramentas adicionais para criar programas Java
2. O pacote SDK é maior e, portanto, leva mais tempo para fazer o download do que o JRE
3. Somente o JRE é necessário para a maioria dos usuários e o SDK é apenas para programadores