Difference Between JVM and JRE
http://www.differencebetween.com/difference-between-jvm-and-vs-jre/
Java is a cross-platform programming language. It also adheres to the “write once, run anywhere” principle. The program written in Java can be compiled in to Java bytecode by the Java compiler. Then, the bytecode can be executed on any platform running the JRE (Java Runtime Environment). JRE includes the JVM (Java Virtual Machine), base libraries (which implements the Java API) and other supporting files. JVM is an abstract computing machine that acts as a mediator between the platforms specific JRE and the Java code.
Difference Between JDK and JRE
http://www.differencebetween.com/difference-between-jdk-and-jre/
JDK stands for the Java Developer Kit whereas JRE stands for the Java Runtime Environment.
JRE is what is needed to run Java applications. Bundled within is an implementation of the Java Virtual Machine (JVM).
JDK includes JRE and many other Java application development tools. For example, the Java compiler (javac) is included only in JDK.
If you want to run Java software, you may simply live with JRE. The JRE installation file size is also smaller.
If you are a Java software developer, you need to use JDK. As said, if you download and install JDK, you need not install JRE since JRE is included within JDK.