Olá,
1. SDK, JDK são kits de desenvolvimento. Isso inclui a linguagem Java e o compilador que ajuda a escrever programas em Java e compilá-los...
2. Após compilar, você obtém o arquivo de classe (equivalente ao arquivo exe).
3. Para visualizar a saída do seu código, execute o arquivo de classe no ambiente de execução do Java (JRE)...
4. Este JRE possui a Máquina Virtual (VM), que interpreta efetivamente o arquivo de classe e fornece a saída.
As VMs são diferentes para cada sistema operacional. Portanto, o código escrito no Windows pode ser executado no Linux (isso é possível porque o JRE no Linux possui uma VM do Linux, que interpreta o arquivo de classe de acordo com o sistema operacional do Linux)... assim, como diz o ditado "ESCREVA UMA VEZ, EXECUTE EM QUALQUER LUGAR".
Obrigado,
Arul Sekar