Java programma's draaien niet direct binnen het besturingssysteem, maar binnen een applicatie die de Virtual Machine genoemd wordt. Dat is een soort mini-besturingssysteem dat een Java programma tijdens het uitvoeren kan controleren en beheren.
Voorbeelden van Virtual Machines zijn: