JVM is a platform-independent execution environment that converts
Java bytecode into machine language and executes it. It playes a central role in making Java portable. It is called 'virtual' because it is implemented in software on top of a "real" hardware platform and operating system. It loads class files, verifies the bytecodes and also provides some security services. You can read the following link for more info:
http://java.sun.com/docs/books/vmspec/