The JVM (Java Virtual Machine) is the core of the Java system. It's like the microprocessor in a computer: the engine that executes the bytecode.
This is a common misunderstanding. Mostly, I think, because the name "Virtual Machine" gets associated with what "virutal machine" means in other software/computer areas. Also, the term "machine" is a bit misleading, especially when applied to a specification.
There is only
one JVM (the specification). Only one.
There are
many JRE's that implement the specifications outlined in the JVM. It is the JRE that is the engine that executes Java bytecode in a particular operating system.
[ June 26, 2008: Message edited by: James Clark ]