empre me pergutam sobre as diferenças entre JRE e JDK, Java e JavaEE, por isto resolvi descrevê-las aqui:
JVM (Java Virtual Machine)
É a peça chave para fornecer capacidade de multiplataforma para as aplicações java: “Write once, run everywhere”.
A JVM é a máquina virtual responsável por interpretar e executar o código Java compilado (bytecode) e portanto são provedoras de formas e meios de o aplicativo conversar com o sistema operacional.
Esta abstração viabiliza a implementações da JVM para diferentes plataformas de hardware e de sistemas operacionais, o que possibilita que aplicativos Java sejam multi-plataforma.
Uma JVM pode ser desenvolvida por qualquer organização (comunidades / institutos / empresas), desde que sigam as especificações para a Java Virtual Machine.

JRE (Java Runtime Environment)
É composto pela JVM e pela biblioteca de classes Java utilizadas para execução de aplicações java, estas bibliotecas são chamadas de APIs Java.
Portanto para rodarmos uma aplicação java é necessário instalarmos uma JRE no computador onde o software foi instalado.
JDK (Java Development Kit)
É o conjunto de ferramentas necessárias para realizar o desenvolvimento de aplicações java e inclui a JRE e ferramentas de programação, como:
- javac - compilador
- jar - empacotador
- javadoc - ferramenta para geração de documentação
Java Platform
São “distribuições” ou edições de programas e APIs java relacionadas entre si.
Estas edições têem o intuito de facilitar o download e a e instalação de ferramentas e APIs para realizar o desenvolvimento e execução de aplicações java.
Cada edição contém ferramentas e APIs específicas para um determinado tipo de aplicação, veja quais são as edições disponíveis:
- Java SE
É a base da plataforma Java e é utilizada para desenvolver aplicativos desktops e servidores. - Java EE
Necessária para desenvolver softwares que rodam em servidores de aplicações (geralmente aplicações web). - Java ME
Utilizada para desenvolver softwares para dispositivos móveis e para dispositivos com pouca capacidade de processamento, como por exemplo: telefones celulares e impressoras.
Java
É a linguagem de programação Java.
Veja detalhes e composições dos itens acima através da galeria de imagens abaixo:






