Menu
Coddy logo textTech

Was ist eine Laufzeitumgebung?

Eine Laufzeitumgebung ist die Software, die ein Programm um sich herum braucht, während es läuft: die Engine, die seinen Code ausführt, die Standardbibliotheken, die es aufruft, und die Dienste, die Speicher, Fehler und den Zugriff auf das Betriebssystem verwalten. Die JVM, Node.js und CPython sind Beispiele.

Von Kevin Spektor, Mitgründer & CTO

Aktualisiert am 24. September 2026

Führ console.log(typeof process) in Node.js aus, und es gibt object aus. Füg dieselbe Zeile in die Konsole von Chrome ein, und es gibt undefined aus. Die Sprache ist an beiden Stellen dasselbe JavaScript, aber das Programm läuft in zwei verschiedenen Laufzeitumgebungen, und jede gibt ihm andere Werkzeuge.

console.log(typeof process);  // "object" in Node.js, "undefined" in a browser
console.log(typeof document); // "undefined" in Node.js, "object" in a browser

Was eine Laufzeitumgebung bereitstellt

Dein Code beschreibt nur, was zu tun ist. Wenn er läuft, stützt er sich auf eine Softwareschicht, die installiert war, bevor du eine einzige Zeile geschrieben hast. Diese Schicht hat meist fünf Teile:

  1. Eine Ausführungs-Engine. Irgendetwas muss den Code ausführen: ein Interpreter, eine virtuelle Maschine oder ein Just-in-time-Compiler. CPython, die Java Virtual Machine (JVM) und V8 sind Ausführungs-Engines.
  2. Eine Standardbibliothek. Fertige Funktionen für Text, Mathematik, Datumswerte, Dateien und Netzwerk, etwa das Python-Modul json oder das Java-Paket java.util.
  3. Speicherverwaltung. Die Laufzeitumgebung reserviert Speicher für deine Objekte und gibt ihn in Python, Java und JavaScript mit einem Garbage Collector wieder frei, wenn nichts ihn mehr nutzt.
  4. Fehlerbehandlung. Wenn etwas schiefgeht, stoppt die Laufzeitumgebung das Programm kontrolliert und meldet, wo es passiert ist, als Traceback oder Stacktrace.
  5. Zugriff auf das Betriebssystem. Dateien lesen, Netzwerkverbindungen öffnen, Umgebungsvariablen und Kommandozeilenargumente lesen: All das läuft über die Laufzeitumgebung, die das Betriebssystem im Auftrag deines Programms fragt.

Du kannst die Python-Laufzeitumgebung über sich selbst befragen:

Die Antworten hängen davon ab, wo der Code läuft. Auf einem Linux-Server gibt platform.system() 'Linux' zurück, auf einem Mac 'Darwin' und unter Windows 'Windows'. Das Rekursionslimit (in CPython standardmäßig 1000) ist eine Regel der Laufzeitumgebung, nicht der Sprache Python, und die Dutzenden Module, die schon vor deiner ersten Zeile geladen sind, zeigen, wie sich die Laufzeitumgebung selbst vorbereitet.

Java: JDK, JRE und JVM

Bei Java sind die Schichten gut sichtbar, weil jede ihren eigenen Namen hat:

NameSteht fürWas es enthältWer es braucht
JVMJava Virtual MachineDie Engine, die Bytecode (.class-Dateien) ausführt und Speicher verwaltetTeil der beiden Einträge darunter
JREJava Runtime EnvironmentDie JVM plus die Standard-KlassenbibliothekenWer Java-Programme nur ausführt
JDKJava Development KitDas JRE plus Entwicklerwerkzeuge: javac, jar, javadoc, jdbWer Java-Programme schreibt

Der Ablauf: javac Main.java (ein Werkzeug aus dem JDK, der Compiler) macht aus Quellcode die Datei Main.class, und java Main startet die JVM, die die Klasse lädt und mit den Bibliotheken der Laufzeitumgebung ausführt. Die JVM ist der Grund, warum eine einzige .class-Datei unter Windows, macOS und Linux läuft: Jedes Betriebssystem hat seine eigene JVM, und alle verstehen denselben Bytecode.

Seit Java 11 liefert Oracle nur noch das JDK aus, ohne separaten JRE-Download. Manche Distributionen, etwa Eclipse Temurin, veröffentlichen weiterhin ein JRE-Paket. Wenn du Java lernst, installiere ein JDK: Es enthält alles, was auch im JRE steckt. Die Anleitung Java installieren führt dich durch die Schritte.

JavaScript: der Browser und Node.js

JavaScript wurde dafür entworfen, in Webseiten zu laufen, also war seine erste Laufzeitumgebung der Browser. Eine Browser-Laufzeitumgebung gibt deinem Code das document der Seite, window, Timer und fetch für Netzwerkanfragen, und sie blockiert bewusst den direkten Zugriff auf deine Dateien.

Node.js nimmt Googles Engine V8 aus dem Browser heraus und packt sie in eine andere Laufzeitumgebung: kein document, dafür Module wie fs für Dateien, http für Server und das Objekt process für Umgebungsvariablen und Argumente. Deno und Bun sind neuere Laufzeitumgebungen für dieselbe Sprache mit eigenen Werkzeugen. Alle führen dasselbe Kern-JavaScript aus; der Unterschied liegt darin, was es umgibt. Die Seiten zur Node.js-Laufzeitumgebung und zur Event Loop gehen weiter in die Tiefe.

Python: CPython und Verwandte

Wenn Leute „Python installieren“ sagen, meinen sie, eine Laufzeitumgebung zu installieren: den CPython-Interpreter, die Standardbibliothek und pip, um Pakete hinzuzufügen. Für dieselbe Sprache gibt es weitere Laufzeitumgebungen. PyPy ergänzt einen JIT-Compiler für mehr Geschwindigkeit, und MicroPython ist klein genug, um auf Mikrocontrollern zu laufen.

Eine virtuelle Umgebung (python3 -m venv .venv) ist keine neue Laufzeitumgebung. Sie verweist auf einen vorhandenen Interpreter und gibt einem Projekt seine eigene Sammlung installierter Pakete, sodass zwei Projekte verschiedene Versionen derselben Bibliothek nutzen können. Siehe virtuelle Umgebungen.

Kompilierzeit und Laufzeit

„Laufzeit“ bezeichnet auch einen Zeitpunkt: den Zeitraum, in dem das Programm läuft, im Gegensatz zur Kompilierzeit, in der der Quellcode übersetzt wird. Ein Fehler, den der Compiler ablehnt, ist ein Kompilierfehler; einer, der erst während der Ausführung auftritt, etwa eine Division durch null, ist ein Laufzeitfehler. Die Laufzeitumgebung ist die Software, die in diesem zweiten Zeitraum da ist.

Selbst C, das direkt in Maschinencode kompiliert wird, hat eine kleine Laufzeitumgebung. Ein C-Programm startet in Startcode, den die Compiler-Toolchain mitliefert, und Funktionen wie printf und malloc stammen aus der C-Standardbibliothek (glibc auf den meisten Linux-Systemen, die Universal C Runtime unter Windows). Es gibt nur keine virtuelle Maschine und keinen Garbage Collector.

Häufige Irrtümer

  • „Die Laufzeitumgebung ist das Betriebssystem.“ Das Betriebssystem verwaltet die Hardware für alle Programme. Die Laufzeitumgebung ist die Schicht eines einzelnen Programms darüber. Die JVM ist selbst ein Programm, das Windows, macOS oder Linux ausführt; sie ersetzt diese Systeme nicht.
  • „Node.js ist eine Sprache oder ein Framework.“ Node.js ist eine Laufzeitumgebung für JavaScript. Frameworks wie Express sind Bibliotheken, die darin laufen.
  • „Mit einer IDE ist auch die Laufzeitumgebung installiert.“ VS Code enthält weder Python noch Java. Editor und Laufzeitumgebung werden getrennt installiert, auch wenn manche IDEs wie IntelliJ IDEA ein JDK für dich herunterladen können.
  • „Gleiche Sprache, überall gleiches Verhalten.“ Was die Laufzeitumgebung bereitstellt, etwa Dateizugriff, Standardgrenzen und verfügbare Module, kann sich unterscheiden. Code, der in Node.js läuft, kann genau deshalb im Browser scheitern.

Wie es weitergeht

Die Ausführungs-Engine in den meisten Laufzeitumgebungen ist ein Interpreter, und diese Seite vergleicht ihn auch mit einem Compiler. Unter jeder Laufzeitumgebung liegt das Betriebssystem. Um in einer Laufzeitumgebung zu üben, die du noch nicht kennst, starte den Java-Kurs oder den JavaScript-Kurs.

Häufig gestellte Fragen

Was ist ein Beispiel für eine Laufzeitumgebung?
Das klassische Beispiel ist das Java Runtime Environment (JRE): die JVM plus die Standardbibliotheken von Java. Node.js ist eine Laufzeitumgebung für JavaScript außerhalb des Browsers, und der Browser selbst ist eine weitere. Bei Python ist der CPython-Interpreter mit seiner Standardbibliothek die Laufzeitumgebung.
Ist Node.js eine Laufzeitumgebung?
Ja. Node.js ist eine JavaScript-Laufzeitumgebung, die auf Googles Engine V8 aufbaut. Damit läuft JavaScript außerhalb eines Browsers, und es kommen Module für Dateien, Netzwerk und Prozesse hinzu. Node.js ist weder eine Programmiersprache noch ein Framework; Frameworks wie Express laufen darin.
Was bedeutet Runtime eigentlich?
„Runtime“ (Laufzeit) hat zwei Bedeutungen. Es ist der Zeitraum, in dem ein Programm läuft, im Gegensatz zur Kompilierzeit, und deshalb heißen Fehler, die erst dann auftreten, Laufzeitfehler. Außerdem ist es die Kurzform für Laufzeitumgebung, also die Software, die ein Programm in diesem Zeitraum unterstützt.
Soll ich das JRE oder das JDK installieren?
Installiere das JDK, wenn du Java schreibst, denn es enthält den Compiler javac und alles, was im JRE steckt. Das JRE allein führt nur bestehende Java-Programme aus. Seit Java 11 verteilt Oracle nur noch das JDK, also ist für aktuelle Java-Versionen das JDK die normale Wahl.
Wofür stehen JDK, JRE und JVM?
JDK steht für Java Development Kit, JRE für Java Runtime Environment und JVM für Java Virtual Machine. Die JVM führt Bytecode aus, das JRE ist die JVM plus die Standardbibliotheken, und das JDK ist das JRE plus Entwicklungswerkzeuge wie javac.
Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S