TL; DR
Para lectores experimentados:
- Encuentra la ruta de Java; se parece a esto:
C:\Program Files\Java\jdkxxxx\bin\
- El menú de inicio busca "variable de entorno" para abrir el cuadro de diálogo de opciones.
- Examinar
PATH
. Eliminar viejos caminos de Java.
- Agregue la nueva ruta de Java a
PATH
.
- Editar
JAVA_HOME
.
- Cierre y vuelva a abrir la consola / IDE.
¡Bienvenidos!
Te has encontrado con uno de los problemas técnicos más notorios que enfrentan los principiantes de Java: el 'xyz' is not recognized as an internal or external command...
mensaje de error.
En pocas palabras, no ha instalado Java correctamente . Finalizar la instalación de Java en Windows requiere algunos pasos manuales. Siempre debe realizar estos pasos después de instalar Java, incluso después de actualizar el JDK.
Variables de entorno y PATH
(Si ya comprende esto, no dude en saltarse las siguientes tres secciones).
Cuando ejecuta javac HelloWorld.java
, cmd debe determinar dónde javac.exe
se encuentra. Esto se logra con PATH
una variable de entorno.
Una variable de entorno es un par clave-valor especial (p windir=C:\WINDOWS
. Ej .). La mayoría viene con el sistema operativo, y algunos son necesarios para el funcionamiento adecuado del sistema. Una lista de ellos se pasa a cada programa (incluido cmd) cuando se inicia. En Windows , hay dos tipos : variables de entorno del usuario y variables de entorno del sistema .
Puede ver sus variables de entorno de esta manera:
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\craig\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
La variable más importante es PATH
. Es una lista de caminos, separados por ;
. Cuando se ingresa un comando en cmd, cada directorio de la lista se escaneará en busca de un ejecutable coincidente.
En mi computadora, PATH
es:
C:\>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPower
Shell\v1.0\;C:\ProgramData\Microsoft\Windows\Start Menu\Programs;C:\Users\craig\AppData\
Roaming\Microsoft\Windows\Start Menu\Programs;C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\
msys64\mingw32\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Yarn\bin\;C:\Users\
craig\AppData\Local\Yarn\bin;C:\Program Files\Java\jdk-10.0.2\bin;C:\ProgramFiles\Git\cmd;
C:\Program Files\Oracle\VirtualBox;C:\Program Files\7-Zip\;C:\Program Files\PuTTY\;C:\
Program Files\launch4j;C:\Program Files (x86)\NSIS\Bin;C:\Program Files (x86)\Common Files
\Adobe\AGL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\iCLS Client\;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\iCLS
Client\;C:\Users\craig\AppData\Local\Microsoft\WindowsApps
Cuando ejecuta javac HelloWorld.java
, cmd, al darse cuenta de que javac
no es un comando interno , busca en el sistema PATH
seguido por el usuarioPATH
. Entra mecánicamente cada directorio en la lista, y comprueba si javac.com
, javac.exe
, javac.bat
, etc. está presente. Cuando lo encuentra javac
, lo ejecuta. Cuando no lo hace, imprime'javac' is not recognized as an internal or external command, operable program or batch file.
Debe agregar el directorio de ejecutables de Java a PATH
.
JDK vs. JRE
(Si ya comprende esto, no dude en omitir esta sección).
Al descargar Java, se le ofrece una opción entre:
- El Java Runtime Environment (JRE), que incluye las herramientas necesarias para ejecutar programas Java, pero no para compilar nuevos, contiene
java
pero no contiene javac
.
- El Kit de desarrollo de Java (JDK), que contiene ambos
java
y javac
, junto con una serie de otras herramientas de desarrollo. El JDK es un superconjunto del JRE.
Debe asegurarse de haber instalado el JDK . Si solo instaló el JRE, no puede ejecutarlo javac
porque no tiene una instalación del compilador Java en su disco duro. Verifique su lista de programas de Windows y asegúrese de que el nombre del paquete Java incluya las palabras "Kit de desarrollo".
No usar set
(Si no planeaba hacerlo de todos modos, no dude en omitir esta sección).
Varias otras respuestas recomiendan ejecutar alguna variación de:
C:\>:: DON'T DO THIS
C:\>set PATH=C:\Program Files\Java\jdk1.7.0_09\bin
No hagas eso. Hay varios problemas importantes con ese comando:
- Este comando borra todo lo demás desde
PATH
y lo reemplaza con la ruta de Java. Después de ejecutar este comando, puede encontrar varios otros comandos que no funcionan.
- Probablemente su ruta de Java no sea
C:\Program Files\Java\jdk1.7.0_09\bin
, casi definitivamente tiene una versión más nueva del JDK, que tendría una ruta diferente.
- Lo nuevo
PATH
solo se aplica a la sesión de cmd actual. Tendrá que volver a ingresar el set
comando cada vez que abra el símbolo del sistema.
Los puntos 1 y 2 se pueden resolver con esta versión un poco mejor:
C:\>:: DON'T DO THIS EITHER
C:\>set PATH=C:\Program Files\Java\<enter the correct Java folder here>\bin;%PATH%
Pero es solo una mala idea en general.
Encuentra la ruta de Java
La forma correcta comienza con encontrar dónde ha instalado Java. Esto depende de cómo haya instalado Java.
Insta instalador
Ha instalado Java ejecutando un programa de instalación. El instalador de Oracle coloca versiones de Java debajo de C:\Program Files\Java\
(o C:\Program Files (x86)\Java\
). Con el Explorador de archivos o el Símbolo del sistema, navegue a ese directorio.
Cada subcarpeta representa una versión de Java. Si solo hay uno, lo has encontrado. De lo contrario, elija el que se parece a la versión más nueva. Asegúrese de que el nombre de la carpeta comience por jdk
(en lugar de jre
). Ingrese el directorio.
Luego ingrese el bin
directorio de eso.
Ahora estás en el directorio correcto. Copia el camino. Si está en el Explorador de archivos, haga clic en la barra de direcciones. Si está en el símbolo del sistema, copie el mensaje.
La ruta de Java resultante debe tener la forma de (sin comillas):
C:\Program Files\Java\jdkxxxx\bin\
Archivo zip
Has descargado un archivo .zip que contiene el JDK. Extraerlo a un lugar aleatorio donde no se interponga en tu camino; C:\Java\
Es una elección aceptable.
Luego ubique la bin
carpeta en algún lugar dentro de ella.
Ahora estás en el directorio correcto. Copia su camino. Esta es la ruta de Java.
Recuerde no mover nunca la carpeta, ya que eso invalidaría la ruta.
Abrir el cuadro de diálogo de configuración
Ese es el diálogo para editar PATH
. Existen numerosas formas de llegar a ese cuadro de diálogo, dependiendo de su versión de Windows, la configuración de la interfaz de usuario y de lo desordenada que sea la configuración de su sistema.
Pruebe algunos de estos:
- Menú Inicio / cuadro de búsqueda de la barra de tareas »buscar" variable de entorno "
- Win + R »
control sysdm.cpl,,3
- Win + R »
SystemPropertiesAdvanced.exe
» Variables de entorno
- Explorador de archivos »escriba en la barra de direcciones
Control Panel\System and Security\System
» Configuración avanzada del sistema (extremo izquierdo, en la barra lateral) »Variables de entorno
- Escritorio »haga clic con el botón derecho en Esta PC» Propiedades »Configuración avanzada del sistema» Variables de entorno
- Menú Inicio »haga clic con el botón derecho en Equipo» Propiedades »Configuración avanzada del sistema» Variables de entorno
- Panel de control (modo icono) »Sistema» Configuración avanzada del sistema »Variables de entorno
- Panel de control (modo de categoría) »Sistema y seguridad» Sistema »Configuración avanzada del sistema» Variables de entorno
- Escritorio »haga clic con el botón derecho en Mi PC» Avanzado »Variables de entorno
- Panel de control »Sistema» Avanzado »Variables de entorno
Cualquiera de estos debe llevarlo al cuadro de diálogo de configuración correcto.
Si tiene Windows 10, Microsoft lo ha bendecido con una nueva y elegante interfaz de usuario para editar PATH
. De lo contrario, verá PATH
en toda su gloria incrustada en punto y coma, apretada en un cuadro de texto de una sola línea. Haz tu mejor esfuerzo para hacer las ediciones necesarias sin romper tu sistema.
Limpiar PATH
Mira PATH
. Casi definitivamente tiene dos PATH
variables (debido a las variables de entorno del usuario frente al sistema). Tienes que mirar a los dos.
Busque otras rutas de Java y elimínelas. Su existencia puede causar todo tipo de conflictos. (Por ejemplo, si tiene JRE 8 y JDK 11 en PATH
ese orden, javac
invocará el compilador Java 11, que creará .class
archivos de la versión 55 , pero java
invocará Java 8 JVM, que solo admite hasta la versión 52, y experimentará errores de versión no compatibles y no podrá compilar ni ejecutar ningún programa). Evite estos problemas asegurándose de que solo tenga una ruta de Java PATH
. Y mientras lo hace, también puede desinstalar versiones antiguas de Java . Y recuerde que no necesita tener un JDK y un JRE.
Si es así C:\ProgramData\Oracle\Java\javapath
, elimínalo también . Oracle tenía la intención de resolver el problema de las rutas de Java que se rompen después de las actualizaciones creando un enlace simbólico que siempre apunte a la última instalación de Java. Desafortunadamente, a menudo termina apuntando a la ubicación incorrecta o simplemente no funciona . Es mejor eliminar esta entrada y administrar manualmente la ruta de Java.
Ahora también es una buena oportunidad para realizar tareas generales de limpieza PATH
. Si tiene rutas relacionadas con el software que ya no está instalado en su PC, puede eliminarlas. También puede barajar el orden de los caminos (si le importan cosas como esas).
añadir PATH
Ahora tome la ruta de Java que encontró hace tres pasos y colóquela en el sistema PATH
.
No debería importar en qué lugar de la lista vaya su nuevo camino; colocarlo al final es una buena elección.
Si está utilizando la interfaz de usuario anterior a Windows 10, asegúrese de haber colocado los puntos y comas correctamente. Debe haber exactamente uno que separe cada ruta en la lista.
Realmente no hay mucho más que decir aquí. Simplemente agregue la ruta PATH
y haga clic en Aceptar.
Conjunto JAVA_HOME
Mientras lo hace, también puede configurarlo JAVA_HOME
. Esta es otra variable de entorno que también debe contener la ruta de Java. Muchos programas Java y no Java, incluidos los populares sistemas de compilación Java Maven y Gradle , arrojarán errores si no se configuran correctamente.
Si JAVA_HOME
no existe, créelo como una nueva variable de entorno del sistema. Ajústelo a la ruta del directorio Java sin el bin/
directorio, es decir C:\Program Files\Java\jdkxxxx\
.
Recuerde editar también JAVA_HOME
después de actualizar Java.
Cerrar y volver a abrir el símbolo del sistema
Aunque ha modificado PATH
, todos los programas en ejecución, incluido cmd, solo ven los antiguos PATH
. Esto se debe a que la lista de todas las variables de entorno solo se copia en un programa cuando comienza a ejecutarse; a partir de entonces, solo consulta la copia en caché.
No hay una buena manera de actualizar las variables de entorno de cmd , así que simplemente cierre el símbolo del sistema y ábralo nuevamente. Si está utilizando un IDE, ciérrelo y vuelva a abrirlo también.
Ver también