The JVM is the program that interprets your compiled code and makes it run. Sun includes a JVM with the JRE. Since the JRE comes with the JDK/SDK they have a JVM. The Sun JVM is called java.exe Java enabled browsers include a JVM written by the various vendors according to the JVM specifications published by Sun. An appletviewer needs to have a JVM to work, etc.
"JavaRanch, where the deer and the Certified play" - David O'Meara
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com