Configurar Variables de Entorno en Windows


Aprende cómo configurar variables de entorno en Windows 10 y Windows 11 usando CMD, PowerShell, interfaz gráfica, registro y scripts. Guía completa para JAVA_HOME, PATH, Python y más

oscar Escrito por oscar 18 May 2026 10 0

Las variables de entorno en Windows son fundamentales para el funcionamiento de aplicaciones, herramientas de desarrollo y configuraciones del sistema operativo. Gracias a ellas, programas como Java, Python, Maven, Node.js o Docker pueden ejecutarse correctamente desde cualquier terminal.

En esta guía aprenderás cómo configurar variables de entorno en Windows 10 y Windows 11 utilizando distintos métodos: interfaz gráfica, CMD, PowerShell, registro de Windows, scripts y configuraciones avanzadas. Además, conocerás cómo modificar el PATH, crear variables permanentes y solucionar problemas comunes relacionados con el entorno del sistema.

Cómo configurar variables de entorno en Windows

Las variables de entorno en Windows permiten definir valores globales o por usuario que utilizan el sistema operativo, aplicaciones, scripts y herramientas como Java, Python, Maven, Node.js, Git, Docker, etc.

Ejemplos comunes:

Tipos de variables de entorno

Variables de usuario

Solo afectan al usuario actual.

Ejemplo: JAVA_HOME=C:\Java\jdk-21

Variables del sistema

Afectan a todos los usuarios del equipo.

Requieren permisos de administrador.

Cómo ver las variables actuales

Método 1: CMD

Abrir: Win + R Busca: cmd

Ejecutar CMD
Ejecutar CMD

Mostrar todas:  

set

Responde la siguiente información: 

cmd set
cmd set

Mostrar una específica:

echo %JAVA_HOME%

Método 2: PowerShell

Mostrar todas:  

Get-ChildItem Env:

Responde: 

powershell Get-ChildItem Env
powershell Get-ChildItem Env

Mostrar una:

$env:JAVA_HOME

Configurar Variables de Entorno en Windows: Guía Completa

Método 1: Configuración gráfica clásica (GUI)

Este es el método más usado.

Paso 1: Abrir variables de entorno

Presiona:  Win + R Escribe: sysdm.cpl

Ejecutar sysdm.cpl
Leyenda

En la ventana de propiedades del sistena. ir a:

  1. Opciones avanzadas
  2. Variables de entorno
Propiedades del sistema
Propiedades del sistema

Paso 2: Elegir tipo de variable

Verás dos secciones:

Variables de entorno
Variables de entorno

Paso 3: Crear nueva variable

Vamos a crear las siguientes variable de prueba.

Campo Valor
Nombre JAVA_HOME
Valor C:\Program Files\Java\jdk-21

Para eso, seguimos los siguientes pasos: 

  1. Damos click en el botón de nueva..., abrirá la ventana de crear nueva variable.
  2. Ingresamos en Nombre de la variable
  3. Ingresamos el valor de la variable
  4. Damos en aceptar para guardar los cambios
Crear variable de entorno
Crear variable de entorno

Paso 4: Editar PATH

Procedemos a segur los siguientes pasos:

  1. Buscamos: PATH
  2. Damos en botón editar
  3. En la ventana de variables de entorno, damos en nuevo y agregamos la variable, ejemplo: %JAVA_HOME%\bin
  4. Damos en aceptar
Leyenda

Paso 5: Aplicar cambios

Aceptar en todas las ventanas.

Paso 6: Verificar

Cerrar y abrir nueva terminal. como se explica en Método 1 CMD, en la termina ejecutamos:

echo %JAVA_HOME%

Donde responde: java -version

Método 2: Configurar variables desde CMD

Variable temporal

Solo dura mientras la consola esté abierta.  

set JAVA_HOME=C:\Java\jdk-21

Verificar:

echo %JAVA_HOME%

Variable permanente para usuario

setx JAVA_HOME "C:\Java\jdk-21"

Agregar al PATH

setx PATH "%PATH%;C:\Java\jdk-21\bin"

⚠ IMPORTANTE: setx puede truncar variables PATH largas en versiones antiguas de Windows.

Variable permanente del sistema

CMD como administrador:

setx /M JAVA_HOME "C:\Java\jdk-21"

Método 3: Configurar variables desde PowerShell

Variable temporal

Ejecutamos desde la terminal de PowerShell

$env:JAVA_HOME="C:\Java\jdk-21"

Variable permanente usuario

[System.Environment]::SetEnvironmentVariable(
"JAVA_HOME",
"C:\Java\jdk-21",
"User"
)

Variable permanente sistema

PowerShell como administrador:

[System.Environment]::SetEnvironmentVariable(
"JAVA_HOME",
"C:\Java\jdk-21",
"Machine"
)

Agregar al PATH  

$currentPath = [System.Environment]::GetEnvironmentVariable("Path","User")

$newPath = $currentPath + ";C:\Java\jdk-21\bin"

[System.Environment]::SetEnvironmentVariable(
"Path",
$newPath,
"User"
)

Método 4: Usando Windows Terminal

Funciona igual que CMD o PowerShell.

Puedes configurar variables:

Método 5: Variables en scripts BAT

Crear archivo .bat

Ejemplo:  

@echo off

set JAVA_HOME=C:\Java\jdk-21
set PATH=%JAVA_HOME%\bin;%PATH%

cmd

Guardar como:  

java-env.bat

Ejecutar:  doble clic

Método 6: Variables en PowerShell Profile

Muy útil para desarrolladores.

Verificar profile

En una termina de PowerShell ejecutamos:

$PROFILE

Respuesta: C:\Users\USUARIO\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Editar profile

notepad $PROFILE

Agregar:  

$env:JAVA_HOME="C:\Java\jdk-21"

Aplicar

Cerrar y abrir PowerShell.

Método 7: Variables mediante Registro de Windows

⚠ Método avanzado.

Abrir registro

Procedemos a abrir los registros del sistema de la siguiente forma:

Ejecutamos: Win + R  Escribimos regedit

ejecutar regedit
ejecutar regedit

Variables de usuario

Ruta:  HKEY_CURRENT_USER\Environment

Editor de registros, variable usuario
Editor de registros, variable usuario

Variables del sistema

Ruta:  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Editor de registros, variable sistema
Editor de registros, variable sistema

Crear variable

Clic derecho: Nuevo → Valor de cadena

Crear nueva variable en regedit
Crear nueva variable en regedit

Ejemplo:  JAVA_HOME

Valor:  C:\Java\jdk-21

Aplicar cambios

Reiniciar sesión o reiniciar el equipo.

Método 8: Configuración usando archivos .reg

Muy útil para automatización.

Ejemplo

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Environment]
"JAVA_HOME"="C:\\Java\\jdk-21"

Guardar como:  

java.reg

Ejecutar doble clic.

Método 9: Variables mediante políticas de grupo (GPO)

Usado en entornos corporativos.

Abrir GPO

gpedit.msc

Ruta:  Configuración de usuario

Permite desplegar variables masivamente.

Método 10: Configuración mediante scripts de inicio

Empresas suelen usar:

Ejemplo:  

[System.Environment]::SetEnvironmentVariable(
"JAVA_HOME",
"C:\Java\jdk-21",
"Machine"
)

Método 11: Variables desde Visual Studio Code

Archivo .vscode/settings.json

Ejemplo:

{
  "terminal.integrated.env.windows": {
    "JAVA_HOME": "C:\\Java\\jdk-21"
  }
}

Método 12: Variables en WSL (Windows Subsystem for Linux)

Dentro de Linux:  

export JAVA_HOME=/usr/lib/jvm/java-21

Persistente:  

nano ~/.bashrc

Agregar:

export JAVA_HOME=/usr/lib/jvm/java-21

Método 13: Variables usando Docker Desktop

En contenedores:  

ENV JAVA_HOME=/opt/java

O:  

docker run -e JAVA_HOME=/opt/java imagen

Cómo eliminar variables

GUI

Variables de entorno → seleccionar → Eliminar.

CMD

setx JAVA_HOME ""

PowerShell

[System.Environment]::SetEnvironmentVariable(
"JAVA_HOME",
$null,
"User"
)

Cómo actualizar variables sin reiniciar

Muchas veces basta con:

Buenas prácticas

Nunca sobrescribas PATH completo

Incorrecto: 

setx PATH "C:\Java\bin"

Correcto:

setx PATH "%PATH%;C:\Java\bin"

Usa nombres estándar

Ejemplos:

Evita espacios si puedes

Mejor:

C:\Tools\Java

Que:

C:\Program Files\Java

Usa variables reutilizables

Ejemplo:

JAVA_HOME=C:\Java\jdk-21
PATH=%JAVA_HOME%\bin

Variables más importantes para desarrolladores

Variable Uso
PATH Ejecutables
JAVA_HOME Java
PYTHON_HOME Python
M2_HOME Maven
GRADLE_HOME Gradle
NODE_HOME Node.js
ANDROID_HOME Android SDK
TEMP Archivos temporales

Ejemplo completo Java

Variables

JAVA_HOME=C:\Java\jdk-21

PATH:

%JAVA_HOME%\bin

Verificar 

java -version
javac -version
echo %JAVA_HOME%

Cómo diagnosticar problemas

Ver PATH

CMD: 

echo %PATH%

PowerShell:

$env:PATH

Ver qué ejecutable se usa

CMD: 

where java

PowerShell:

Get-Command java

Problemas comunes

Problema Causa
Variable no aparece Terminal abierta antes del cambio
Java incorrecto PATH tiene otra versión primero
setx no funciona PATH demasiado largo
Acceso denegado Falta permisos administrador
Espacios en ruta Comillas incorrectas

Recomendación práctica

Para la mayoría de usuarios:

Usa:

Porque son:


Comentario

Debe aceptar antes de enviar