Menu
Coddy logo textTech

¿Qué es un entorno de ejecución?

Un entorno de ejecución es el software que un programa necesita a su alrededor mientras se ejecuta: el motor que ejecuta su código, las bibliotecas estándar a las que llama y los servicios que gestionan la memoria, los errores y el acceso al sistema operativo. La JVM, Node.js y CPython son ejemplos.

Por Kevin Spektor, Cofundador y CTO

Actualizado el 24 de septiembre de 2026

Ejecuta console.log(typeof process) en Node.js y se imprime object. Pega la misma línea en la consola de Chrome y se imprime undefined. El lenguaje es el mismo JavaScript en los dos sitios, pero el programa se ejecuta dentro de dos entornos de ejecución distintos, y cada uno le da herramientas diferentes.

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

Qué aporta un entorno de ejecución

Tu código solo describe qué hay que hacer. Cuando se ejecuta, se apoya en una capa de software que ya estaba instalada antes de que escribieras una sola línea. Esa capa suele tener cinco partes:

  1. Un motor de ejecución. Algo tiene que ejecutar el código: un intérprete, una máquina virtual o un compilador just-in-time. CPython, la Máquina Virtual de Java (JVM) y V8 son motores de ejecución.
  2. Una biblioteca estándar. Funciones ya hechas para texto, matemáticas, fechas, archivos y red, como el módulo json de Python o el paquete java.util de Java.
  3. Gestión de memoria. El entorno de ejecución reserva memoria para tus objetos y, en Python, Java y JavaScript, la libera con un recolector de basura cuando nada la usa.
  4. Manejo de errores. Cuando algo sale mal, el entorno de ejecución detiene el programa de forma controlada e indica dónde, con un traceback o un stack trace.
  5. Acceso al sistema operativo. Leer archivos, abrir conexiones de red, leer variables de entorno y argumentos de línea de comandos pasa por el entorno de ejecución, que se lo pide al sistema operativo en nombre de tu programa.

Puedes preguntarle al entorno de ejecución de Python por sí mismo:

Las respuestas dependen de dónde se ejecute el código. En un servidor Linux platform.system() devuelve 'Linux', en un Mac 'Darwin' y en Windows 'Windows'. El límite de recursión (1000 por defecto en CPython) es una regla del entorno de ejecución, no del lenguaje Python, y las decenas de módulos ya cargados antes de tu primera línea son el entorno de ejecución preparándose.

Java: JDK, JRE y JVM

Java hace visibles las capas porque cada una tiene su propio nombre:

NombreSignificaQué contieneQuién lo necesita
JVMJava Virtual MachineEl motor que ejecuta bytecode (archivos .class) y gestiona la memoriaForma parte de los dos siguientes
JREJava Runtime EnvironmentLa JVM más las bibliotecas de clases estándarQuien solo ejecuta programas Java
JDKJava Development KitEl JRE más herramientas de desarrollo: javac, jar, javadoc, jdbQuien escribe programas Java

El flujo es este: javac Main.java (una herramienta del JDK, el compilador) convierte el código fuente en Main.class, y java Main inicia la JVM, que carga la clase y la ejecuta con las bibliotecas del entorno de ejecución. La JVM es la razón por la que un mismo archivo .class funciona en Windows, macOS y Linux: cada sistema operativo tiene su propia JVM, y todas entienden el mismo bytecode.

Desde Java 11, Oracle distribuye solo el JDK, sin una descarga aparte del JRE. Algunas distribuciones, como Eclipse Temurin, siguen publicando un paquete JRE. Si estás aprendiendo Java, instala un JDK: contiene todo lo que tiene el JRE. La guía instalar Java lo explica paso a paso.

JavaScript: el navegador y Node.js

JavaScript se diseñó para ejecutarse dentro de páginas web, así que su primer entorno de ejecución fue el navegador. El entorno de un navegador da a tu código el document de la página, window, temporizadores y fetch para peticiones de red, y bloquea a propósito el acceso directo a tus archivos.

Node.js saca el motor V8 de Google del navegador y lo envuelve en un entorno de ejecución distinto: sin document, pero con módulos como fs para archivos, http para servidores y el objeto process para variables de entorno y argumentos. Deno y Bun son entornos de ejecución más recientes para el mismo lenguaje, con sus propias herramientas. Todos ejecutan el mismo JavaScript básico; la diferencia está en lo que lo rodea. Las páginas runtime de Node.js y event loop profundizan en ello.

Python: CPython y compañía

Cuando la gente dice "instalar Python" se refiere a instalar un entorno de ejecución: el intérprete CPython, la biblioteca estándar y pip para añadir paquetes. Existen otros entornos de ejecución para el mismo lenguaje. PyPy añade un compilador JIT para ganar velocidad, y MicroPython es lo bastante pequeño para funcionar en microcontroladores.

Un entorno virtual (python3 -m venv .venv) no es un entorno de ejecución nuevo. Apunta a un intérprete existente y da a un proyecto su propio conjunto de paquetes instalados, para que dos proyectos puedan usar versiones distintas de la misma biblioteca. Consulta entornos virtuales.

Tiempo de compilación y tiempo de ejecución

"Runtime" también nombra un momento: el periodo durante el que el programa se está ejecutando, en contraste con el tiempo de compilación, cuando se traduce el código fuente. Un error que el compilador rechaza es un error en tiempo de compilación; uno que solo aparece mientras el programa se ejecuta, como dividir por cero, es un error en tiempo de ejecución. El entorno de ejecución es el software presente durante ese segundo periodo.

Incluso C, que se compila directamente a código máquina, tiene un pequeño entorno de ejecución. Un programa en C arranca en código de inicio que aporta la cadena de herramientas del compilador, y funciones como printf y malloc vienen de la biblioteca estándar de C (glibc en la mayoría de los sistemas Linux, el Universal C Runtime en Windows). Simplemente no hay máquina virtual ni recolector de basura.

Ideas equivocadas frecuentes

  • "El entorno de ejecución es el sistema operativo." El sistema operativo gestiona el hardware para todos los programas. El entorno de ejecución es la capa de un programa por encima de él. La JVM es a su vez un programa que ejecutan Windows, macOS o Linux; no los sustituye.
  • "Node.js es un lenguaje o un framework." Node.js es un entorno de ejecución para JavaScript. Los frameworks como Express son bibliotecas que se ejecutan dentro de él.
  • "Instalar un IDE instala el entorno de ejecución." VS Code no incluye Python ni Java. El editor y el entorno de ejecución se instalan por separado, aunque algunos IDE, como IntelliJ IDEA, pueden descargar un JDK por ti.
  • "Mismo lenguaje, mismo comportamiento en todas partes." Lo que aporta el entorno de ejecución, como el acceso a archivos, los límites por defecto y los módulos disponibles, puede cambiar. El código que funciona en Node.js puede fallar en un navegador justo por eso.

Qué leer después

El motor de ejecución de la mayoría de los entornos es un intérprete, y esa página también lo compara con un compilador. Debajo de todo entorno de ejecución está el sistema operativo. Para practicar en un entorno de ejecución que aún no has usado, empieza el curso de Java o el curso de JavaScript.

Preguntas frecuentes

¿Me das un ejemplo de entorno de ejecución?
El Java Runtime Environment (JRE) es el ejemplo clásico: la JVM más las bibliotecas estándar de Java. Node.js es un entorno de ejecución para JavaScript fuera del navegador, y el propio navegador es otro. En Python, el intérprete CPython con su biblioteca estándar es el entorno de ejecución.
¿Node.js es un entorno de ejecución?
Sí. Node.js es un entorno de ejecución de JavaScript construido sobre el motor V8 de Google. Permite ejecutar JavaScript fuera del navegador y añade módulos para archivos, red y procesos. No es un lenguaje de programación ni un framework; los frameworks como Express se ejecutan dentro de él.
¿Qué significa realmente runtime?
"Runtime" tiene dos significados. Es el periodo durante el que un programa se está ejecutando, en contraste con el tiempo de compilación, y por eso los errores que solo aparecen entonces se llaman errores en tiempo de ejecución. También es la forma corta de runtime environment, el entorno de ejecución, el software que da soporte a un programa durante ese periodo.
¿Debo instalar el JRE o el JDK?
Instala el JDK si escribes Java, porque incluye el compilador javac y todo lo que trae el JRE. El JRE por sí solo únicamente ejecuta programas Java ya hechos. Desde Java 11, Oracle distribuye solo el JDK, así que para las versiones actuales de Java el JDK es la opción normal.
¿Qué significan JDK, JRE y JVM?
JDK significa Java Development Kit, JRE Java Runtime Environment y JVM Java Virtual Machine. La JVM ejecuta bytecode, el JRE es la JVM más las bibliotecas estándar, y el JDK es el JRE más herramientas de desarrollo como javac.
Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR