JVM to akronim dla Java Virtual Machine, tj. Wirtualna Maszyna Javy. Aby aplikacja napisana w języku Java mogła być uruchomiona, pliki zawierające kod źródłowy muszą być skompilowane. Kompilacja polega na przetłumaczeniu programu napisanego w Javie na kod wykonywalny, tzw. Bytecode. Kompilację wykonujemy przy użyciu specjalnego narzędzia, tzw. kompilatora.
Jednak Bytecode to nie jest ciąg instrukcji procesora (jednostki centralnej komputera), tylko ciąg instrukcji specjalnego języka. Języka którego instrukcje wykonywane są właśnie przez Wirtualną Maszynę Javy (JVM). JVM jest więc w pewnym sensie procesorem wykonującym skompilowany kod języka Java.
JRE to akronim dla Java Runtime Environment, tj. Środowisko Uruchomieniowe Javy. JRE składa się z Wirtualnej Maszyny Javy (tzn. zawiera JVM) oraz zestawu klas i narzędzi niezbędnych dla uruchamiania programów napisanych w Javie.
JDK to akronim dla Java Development Kit, tj. Pakiet Programisty Javy. JDK zawiera Środowisko Uruchomieniowe Javy (tzn. JRE) oraz narzędzia niezbędne do implementacji i kompilacji aplikacji napisanych w języku Java.
Podsumowując – jeśli chcemy implementować, lub chodziażby kompilować, programy napisane w Javie to musimy zainstalować JDK. Jeśli nie jesteśmy programistami i chcemy jedynie uruchamiać skompilowane już aplikacje to wystarczy nam JRE. JVM nie występuje w formie samodzielnej a jedynie jako część większej całości – JRE albo JDK.