El código Java en Linux es el mismo que el código Java en Windows. ¿Por qué hay código de bytes?
En la máquina, solo pueden ejecutar ejecutables binarios, mientras que los lenguajes interpretados se compilan en tiempo de ejecución, por lo que los lenguajes interpretados son terriblemente ineficientes.
Java no es un lenguaje interpretado, debe compilarse para ejecutarse.
Es la máquina virtual Java la que reconoce el código de bytes de clase, no Windows o Linux.
Java es un lenguaje diseñado específicamente para aplicaciones empresariales. Debes saber por qué no es un lenguaje interpretado.