El empleo de máquinas virtuales se había centrado principalmente en el uso de emuladores para ayudar al desarrollo de hardware en construcción o sistemas operativos, pero la JVM se diseñó para ser implementada completamente en software, y al mismo tiempo hacer que fuera portable a todo tipo de hardware.