Diferença chave: JRE significa Java Runtime Environment. É o ambiente de execução Java da Oracle, usado para executar o bytecode Java. Por outro lado, SDK ou kit de desenvolvimento de software é um conjunto de ferramentas de desenvolvimento de software. Estes são usados principalmente para criar vários aplicativos. O JRE é usado para executar esses e outros programas Java.

Os SDKs geralmente incluem arquivos para interface com uma linguagem de programação específica, hardware sofisticado para comunicação com um determinado sistema embarcado, ferramentas para depuração de auxílios e outros utilitários, além de código de amostra, suporte a notas técnicas ou outra documentação de suporte para esclarecer pontos da referência primária material. Da mesma forma, o JDK vem com o JRE e várias ferramentas de desenvolvimento, como bibliotecas Java, compiladores de origem Java, depuradores Java, ferramentas de empacotamento e implementação.
A diferença entre o JRE e o SDK pode ser resumida como tal. O SDK, ou melhor, o JDK pode ser usado para compilar programas no bytecode de Java. O bytecode Java é um formato binário portátil padronizado que normalmente vem na forma de arquivos .class. Os programas podem ser de várias classes e em arquivos diferentes.

Para executar o programa, o bytecode deve ser convertido em comandos correspondentes, que serão compreendidos pelo sistema operacional local. O JRE é usado para fazer isso. Existem diferentes versões do JRE que traduzem o bytecode para o sistema operacional correspondente, ou seja, uma para o Windows XP, uma para o Windows Vista, uma para o Windows 7, uma para o Mac Snow Leopard, etc. Toda a função do JRE é permitir que o computador para executar o programa Java.
Essencialmente, o JDK é usado para escrever ou compilar os próprios programas Java, enquanto o JRE é usado para executar esses e outros programas Java, que estão prontamente disponíveis na Internet. Vários aplicativos e jogos são atualmente baseados em Java.