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:
JAVA_HOMEPATHMAVEN_HOMEPYTHON_HOMETEMPUSERNAME
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
Mostrar todas:
set
Responde la siguiente información:
Mostrar una específica:
echo %JAVA_HOME%
Método 2: PowerShell
Mostrar todas:
Get-ChildItem Env:
Responde:
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
En la ventana de propiedades del sistena. ir a:
- Opciones avanzadas
- Variables de entorno
Paso 2: Elegir tipo de variable
Verás dos secciones:
- Variables de usuario
- Variables del sistema
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:
- Damos click en el botón de nueva..., abrirá la ventana de crear nueva variable.
- Ingresamos en Nombre de la variable
- Ingresamos el valor de la variable
- Damos en aceptar para guardar los cambios
Paso 4: Editar PATH
Procedemos a segur los siguientes pasos:
- Buscamos: PATH
- Damos en botón editar
- En la ventana de variables de entorno, damos en nuevo y agregamos la variable, ejemplo:
%JAVA_HOME%\bin - Damos en aceptar
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:
- Temporalmente
- En perfiles
- Mediante scripts automáticos
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
Variables de usuario
Ruta: HKEY_CURRENT_USER\Environment
Variables del sistema
Ruta: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Crear variable
Clic derecho: Nuevo → Valor de cadena
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
- Preferencias
- Configuración de Windows
- Entorno
Permite desplegar variables masivamente.
Método 10: Configuración mediante scripts de inicio
Empresas suelen usar:
- PowerShell scripts
- BAT
- GPO logon scripts
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:
- cerrar y abrir terminal
- cerrar sesión
- reiniciar explorer.exe
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:
JAVA_HOMEM2_HOMEGRADLE_HOME
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:
- GUI para cambios manuales
- PowerShell para automatización
- GPO en empresas
- Profiles para desarrollo
Porque son:
- más seguros
- más mantenibles
- menos propensos a romper PATH