Hola,
1. SDK, JDK son kits de desarrollo. Esto incluye el lenguaje Java y el compilador que te ayuda a escribir programas en Java y compilarlos...
2. Después de compilar, obtienes el archivo de clase (equivalente al archivo exe).
3. Para ver la salida de tu código, ejecutas el archivo de clase en el entorno de ejecución de Java (JRE)...
4. Este JRE tiene la Máquina Virtual (VM), que interpreta realmente el archivo de clase y da la salida.
Las VM son diferentes para cada sistema operativo. Por lo tanto, el código escrito en Windows puede ejecutarse en Linux (esto es posible porque el JRE en Linux tiene una VM de Linux, que interpreta el archivo de clase según el sistema operativo de Linux)... así que el dicho va "ESCRIBE UNA VEZ, EJECUTA EN CUALQUIER LUGAR".
Gracias,
Arul Sekar