The JVM (Java Virtual Machine) is the engine of Java - it's the thing that executes your Java bytecode.
The JRE (Java Runtime Environment) is a complete car, including the engine (JVM). To be able to go somewhere, you need more than just the engine - you need a car with an engine in it. The JRE is the car around the JVM: the standard Java library and other things you need to run Java programs.
When you install the JDK, a JRE is also installed - it wouldn't make much sense to have just a Java compiler without any way to run Java programs, and besides that, the Java compiler itself is written in Java so it needs a JRE to run.
The compiler ofcourse comes with the Java Development Kit (not with the JRE).