JVM (Java Virtual Machine): is a virtual for "virtual computer" execute bytecode bytecode.
JRE (Java Runtime Environment): contains the Java virtual machine, library functions, you must run a Java application files.
JDK (Java Development Kit): contains the JRE as well as increase the file compiler and debugger, etc. for program development.
JDK includes JRE, JRE included JVM.
Cross-platform has been able to achieve, because, given a different JVM virtual machines based on different operating systems SUN company.