From java web site
http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html **********
Java bytecodes help make "write once, run anywhere" possible.
You can compile your program into bytecodes on any platform that has a Java compiler.
The bytecodes can then be run on any implementation of the Java VM.
That means that as long as a computer has a Java VM,
the same program written in the Java programming language can run on Windows 2000, a Solaris workstation, or on an iMac.
***********
I never find any article explain the difference between JVM & JRE.
(or JVM is a concept only, no real implementation)