Kurzeinstieg Java: Java Virtual Machine
Bei Programmiersprachen wie C oder C++ wird beim Kompilieren Maschinencode erzeugt. Dieser kann dann direkt auf dem Computer ausgeführt werden.
Im Gegensatz dazu verfolgte Sun bei der Einführung der Programmiersprache das Konzept "Write once, run everywhere!". Das heißt, man wollte eine Programmiersprache entwickeln, mit der man einmal ein Programm schreibt, welches dann auf möglichst allen Betriebssystemen läuft. Dazu führte man das Konzept der Java Virtual Machine (JVM) ein.
Die Java Virtual Machine ist eine Abstraktionsschicht zwischen dem Javaprogramm und dem eigentlichen Betriebssystem. Bei der Kompilierung mit javac wird kein nativer Maschinencode erzeugt, sondern ein Bytecode, der dann von der JVM intepretiert werden kann. Deshalb können kompilierte Javaprogramme auch nicht direkt aufgerufen werden, sondern müssen immer über die virtuelle Maschine in Form von "java test" oder "java -jar test.jar" aufgerufen werden. Man kann sich die virtuelle Maschine als Blackbox um das Java Programm vorstellen, die die Interaktion mit dem Betriebssystem übernimmt.
Das Konzept der Java-VM ist so erfolgreich, dass es auch mit anderen Programmiersprachen genutzt werden kann. So ist jython ein Werkzeug, dass aus Python-Programmtext Java-VM-Code erzeugt.