The Java® programming language uses special management software called a Java® virtual machine (JVM). This JVM is necessary for any Java® software program to work properly on a computer. The JVM interprets requests from a software program and converts them into machine language that is understood by the computer hardware. The JVM is hardware-platform agnostic, making it suitable for many types of computer operating systems.
Most programming languages today are hardware-platform specific. These programs are known as proprietary because they can only run on specific operating systems. The Java® virtual machine is the special element that makes the Java® programs platform independent. This JVM is an automated liaison process that manages communication between computer hardware and Java® programming code.
When a computer user turns on his computer, he is interacting with computer hardware and software operating system (OS). The computer OS is the primary device that captures actions from the mouse and keyboard of the computer. These events are transmitted from the operating system to the program by using special OS code. The Java® virtual machine is a Java® process that captures OS events and transforms them into Java® understandable messages.
Using a Java® virtual machine has several benefits. The technical nuances of each operating system are hidden from the developer. This allows more versatility for the program because it can work with multiple computer hardware platforms. The JVM also allows the flexibility of using more then one operating system platform within the organization.
There are several operating systems available today, including Windows®, MAC®, UNIX® and Linux®. A single Java® software program can run on multiple versions of operating systems. This is because Java® programs use the JVM to interact with operating system. Other types of software code typically require a separate compilation code base for each operating system.
Microsoft®.NET is an example of a software language that requires specific compilation for each operating system. To deploy this type of software onto a UNIX® environment, the code would need to be recompiled. This would require the management of multiple code bases for each operating system used.
Today the Java® virtual machine technology has been deployed to millions of computers and devices throughout the world. This JVM is freely available from the Internet with the Java® development software environment. This process is automatically installed when the Java® software code is installed onto a computer.
Multitasking is a process that enables multiple programs to run in parallel on one computer. The Java® virtual machine supports multitasking capabilities. This technique enables a JVM to support multiple simultaneous applications. Having multiprocessing capabilities saves valuable computer processing resources, which makes applications run faster.