A Java Virtual Machine is software that complies with The Java Virtual Machine Specification. In other words, a Java Virtual Machine (or JVM) is software that allows a Java program to run. Since Java is not compiled into a language that a computer can actually run, a virtual machine is necessary to make it possible to run the Java bytecode on your computer.