Oi!
Só para esclarecer para não ficar somente no chute.
Quando você instala uma JDK, na verdade você está instalando duas coisas: A JDK propriamente dita e a JRE.
Para nós que somos desenvolvedores, precisamos da JDK que contém as bibliotecas, o compilador e outras ferramentas do Java. Só que não adianta termos a JDK sem a JRE! Precisamos executar nossos códigos. Por isso ele vem com os dois obrigatoriamente.
A JRE é a runtime do Java, o que nossos programas e servidores de aplicação irão usar para executar nossos binários. Os nossos clientes não terão uma JDK instalada no computador deles, basta a JRE que tem um instalador separado só com ele para esses casos.
Por isso as duas pastas:
- jdk1.8.0_xxx: Essa é a pasta que contém a JDK, as bibliotecas e ferramentas que eu disse.
- jre1.8.0_xxx: Essa é a pasta que contém a JRE para executar nossos sistemas.
Esse xxx que eu coloquei diz respeito à qual versão com correções você fez o download. Toda vez que a Oracle corrigir um bug ou aplicar algum patch, esse número irá mudar. Então, daqui a algum tempo, se você fizer o download do Java novamente, pode ser que esse número tenha mudado.
Quando vocês executam o comando javac vocês estão dizendo para o prompt executar o programa (compilador) que está na pasta jdk1.8.0_xxx/bin/javac
Quando vocês executam o comando java vocês estão dizendo para o prompt executar o programa que está na pasta jdk1.8.0_xxx/bin/java
SEMPRE que forem programar, ao configurar a variável de ambiente do Windows, apontem para a JDK, nunca para a JRE. A JRE não tem o programa javac (compilador).
Espero ter ajudado.
OBS: Por favor, marquem uma resposta solucionadora para o caso para ajudar outros que tiverem a mesma dúvida!