Java Virtual Macine;
A Java Virtual Machine translates Java�s platform-independent bytecodes into the native machine code of the target processor and performs dynamic class loading.
Java Runtime Environment:
Now to run any application, a user needs a Java virtual machine, the Java platform core classes, and various support programs and files. This collection of software is known as a runtime environment.
The Java 2 SDK software can serve as a runtime environment. However, you probably can't assume your users have the Java 2 SDK installed.
To solve this problem, Sun provides the Java 2 Runtime Environment. (JRE)
JRE is free and redistributable runtime environment.
Thus JRE contains the Java virtual machine, runtime class libraries, and Java application launcher that are necessary to run programs written in the Java progamming language.
It is not a 'development environment' and does not contain development tools such as compilers or debuggers.