birçok işletim sistemi için(solaris, linux...) ayrı ayrı jvm ler mevcuttur. bunlar .class uzantılı olan dosyaların içeriğindeki bytecode denilen kodu okur ve çalıştırır. bir ara katman gibidir. aynı derlenmiş java dosyası farklı işletim sistemlerinin üzerindeki jvm üzerinde çalışır. genelde çalışır tabi. her zaman değil.
ayrıca java 6'da jvm'nin yüksek oranda hızlandığı söyleniyor.