The JVM (
Java Virtual Machine) describes the actual 'application' whose job it is to translate Java Bytecode (what your class files compile into) into native machine code for whatever system it is running on. The JRE (Java Runtime Environment) describes not only the JVM itself, but also any plugins, additional APIs, etc.At least, this very simple answer is what I go by.