Du point de vue d'un compilateur, la machine virtuelle Java n'est qu'un autre processeur avec un jeu d'instructions, Java bytecode, pour lequel un code peut être généré.
Les machines virtuelles Java fonctionnent sur Java bytecode, qui est normalement -LRB- mais pas nécessairement -RRB- généré à partir du code source Java ; une JVM peut également être utilisée pour mettre en œuvre des langages de programmation autres que Java.