A Java virtual machine is software that runs on non-virtual hardware and standard operating systems. A JVM provides an environment that can run Java bytecode, allowing functions such as automated exception handling, which provides the "root causes" of the debugging information for all software errors (exceptions), independent the source code. A JVM is supplied with a set of class libraries that implement the standard Java application programming interface (API). API grouped with Java Runtime Environment (JRE).
JVM is available for many hardware and software platforms. Using the same bytecode for all JVMs on all platforms allows Java is described as a "write once, run anywhere" programming language, instead of "write once, compile anywhere", which describes multi-platform compiled languages. Therefore, the JVM is a crucial component of the Java platform.
Java bytecode is an intermediate language, which is usually based on Java, but it can also be collected from other programming languages. For example, Ada source code is compiled into Java bytecode and run on a JVM.
Oracle, the owner of Java, the JVM to produce, but the JVM with the name "Java" must be developed by other companies, provided they meet the specific JVM, published by Oracle, and its contractual obligations and the best programming solutions ever.