Die Java Virtual Machine (abgekürzt Java VM oder JVM) ist der Teil der Java-Laufzeitumgebung (Java Runtime Environment, JRE) für Java-Programme, der für die Ausführung des Java-Bytecodes verantwortlich ist. Es wird jedes gestartete Java-Programm in einer eigenen virtuellen Maschine (VM) ausgeführt.
Die JVM dient als Schnittstelle zur Maschine und zum Betriebssystem und ist für die meisten Plattformen verfügbar (z. B. Linux, Mac OS X, Palm OS, Solaris, Windows, z/OS usw.). Vom Java-Compiler erzeugter (plattformunabhängiger) Bytecode wird von einer plattformabhängigen Java Virtual Machine ausgeführt. Die erzeugten Bytecode-Dateien (Dateiendung „.class“) werden während der Laufzeit in die lokale Maschinensprache übersetzt.
Die Bestandteile der JVM sind
der Klassenlader (classloader und resolver),
die Speicherverwaltung und automatische Speicherbereinigung (garbage collection, Heap und Stack)
Ausführungseinheit (execution engine).