reconoce mvn interno externo como comando java path environment-variables command-prompt javac

mvn - javac no se reconoce como un comando interno o externo, un programa operable o un archivo por lotes



javap no se reconoce como un comando interno o externo (6)

TL; DR

Para lectores experimentados:

  1. Encuentra la ruta de Java; se ve así: C:/Program Files/Java/jdkxxxx/bin/
  2. El menú de inicio busca "variable de entorno" para abrir el diálogo de opciones.
  3. Examinar el PATH . Eliminar las rutas de Java antiguas.
  4. Agregue la nueva ruta de Java a PATH .
  5. Editar JAVA_HOME .
  6. Cierre y vuelva a abrir la consola / IDE.

¡Bienvenido!

Ha encontrado 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 . La finalización de 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 omitir las siguientes tres secciones).

Cuando ejecuta javac HelloWorld.java , cmd debe determinar dónde se encuentra javac.exe . Esto se logra con PATH , una variable de entorno.

Una variable de entorno es un par clave-valor especial (por ejemplo, windir=C:/WINDOWS ). La mayoría vino con el sistema operativo, y algunos son necesarios para que el sistema funcione correctamente. Una lista de ellos se pasa a cada programa (incluido cmd) cuando se inicia. En Windows , hay dos tipos : variables de entorno de usuario y variables de entorno de sistema .

Puedes ver tus variables de entorno así:

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 en la lista se escaneará en busca de un ejecutable que coincida.

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 el sistema PATH seguido del usuario PATH . Ingresa mecánicamente a todos los directorios de la lista y verifica si javac.com , javac.exe , javac.bat , etc. está presente. Cuando encuentra a 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:

  • Java Runtime Environment (JRE), que incluye las herramientas necesarias para ejecutar programas Java, pero no para compilar programas nuevos, contiene java pero no javac .
  • El Kit de desarrollo de Java (JDK), que contiene 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 ha instalado el JRE, no puede ejecutar javac porque no tiene una instalación del compilador de Java en su disco duro. Verifique su lista de programas de Windows y asegúrese de que el nombre del paquete de Java incluya las palabras "Kit de desarrollo".

No use set

(Si no estaba planeando hacerlo de todos modos, siéntase libre de saltarse 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:

  1. Este comando borra todo lo demás de PATH y lo reemplaza con la ruta de Java. Después de ejecutar este comando, puede encontrar otros comandos que no funcionan.
  2. 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.
  3. El nuevo PATH solo se aplica a la sesión cmd actual. Deberá volver a ingresar el comando set cada vez que abra el símbolo del sistema.

Los puntos # 1 y # 2 se pueden resolver con esta versión ligeramente 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.

Instalador exe

Ha instalado Java ejecutando un programa de instalación. El instalador de Oracle coloca las versiones de Java en 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 con jdk (a diferencia de jre ). Entra en el directorio.

Luego ingrese el directorio bin 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 Símbolo del sistema, copy el indicador.

La ruta Java resultante debe estar en la forma de (sin comillas):

C:/Program Files/Java/jdkxxxx/bin/

Archivo zip

Usted ha descargado un .zip que contiene el JDK. Sácalo a algún lugar aleatorio donde no se interponga en tu camino; C:/Java/ es una opción aceptable.

A continuación, busque la carpeta bin algún lugar dentro de ella.

Ahora estás en el directorio correcto. Copia su camino. Esta es la ruta de Java.

Recuerde que nunca debe mover la carpeta, ya que invalidaría la ruta.

Abre el diálogo de configuración

Ese es el diálogo para editar PATH . Existen numerosas formas de acceder a ese cuadro de diálogo, según la versión de Windows, la configuración de la interfaz de usuario y la desordenada configuración del 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 de 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 debería llevarlo al cuadro de diálogo de configuración correcto.

Si estás en Windows 10, Microsoft te ha bendecido con una nueva y elegante interfaz de usuario para editar PATH . De lo contrario, verá PATH en toda su gloria con un punto y coma, comprimido en un cuadro de texto de una sola línea. Haz tu mejor esfuerzo para hacer las ediciones necesarias sin romper tu sistema.

PATH limpia

Mira el PATH . Casi definitivamente tiene dos variables PATH (debido a las variables de entorno de usuario vs. sistema). Necesitas mirar a los dos.

Compruebe 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 , en ese orden, entonces javac invocará el compilador de Java 11, que creará archivos .class versión 55, pero java invocará la JVM de Java 8, que solo es compatible con a 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 Java en 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 tiene C:/ProgramData/Oracle/Java/javapath , elimínelo también . Oracle intentó resolver el problema de las rutas de Java que se rompen después de las actualizaciones mediante la creación de un enlace simbólico que siempre apuntaría 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 de limpieza general en PATH . Si tiene rutas relacionadas con el software que ya no está instalado en su PC, puede eliminarlas. También puedes barajar el orden de los caminos (si te interesan las cosas así).

Añadir a PATH

Ahora tome la ruta Java que encontró hace tres pasos y colóquela en el sistema PATH .

No debería importar en qué parte de la lista va su nuevo camino; Colocarlo al final es una buena elección.

Si está utilizando la IU anterior a Windows 10, asegúrese de haber colocado los puntos y coma correctamente. Debe haber exactamente uno separando cada ruta en la lista.

Realmente no hay mucho más que decir aquí. Simplemente agregue la ruta a PATH y haga clic en Aceptar.

Establecer JAVA_HOME

Mientras estás en eso, también puedes establecer JAVA_HOME también. Esta es otra variable de entorno que también debe contener la ruta de Java. Muchos programas Java y no Java, incluido el popular sistema de desarrollo Java Gradle , generarán errores si no se configuran correctamente.

Si JAVA_HOME no existe, créelo como una nueva variable de entorno del sistema. Establézcalo en la misma ruta de Java que agregó a PATH .

Recuerde editar JAVA_HOME después de actualizar Java, también.

Cerrar y volver a abrir el símbolo del sistema

Aunque ha modificado PATH , todos los programas en ejecución, incluido cmd, solo ven el antiguo 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.

Ver también

Estoy experimentando un error al intentar compilar programas Java.

Estoy en Windows (este es un problema específico de Windows) y tengo el último JDK instalado.

He intentado una solución con la variable PATH , pero el error persiste.

Salida de consola:

C:/>set path=C:Program Files (x86)/Java/jdk1.7.0/bin C:/>javac Hello.java ''javac'' is not recognized as an internal or external command, operable program or batch file.


Compruebe sus variables de entorno.

En mi caso, tenía JAVA_HOME establecido en las variables del sistema , así como en las variables de mi cuenta de usuario y esta última se configuró en una versión incorrecta de Java . También tuve el mismo problema con la variable Path.

Después de eliminar JAVA_HOME de las variables de mi cuenta de usuario y eliminar la ruta incorrecta de la variable Ruta, funcionó correctamente.


Ejecute lo siguiente desde el símbolo del sistema: set Path="C:/Program Files/Java/jdk1.7.0_09/bin" o set PATH="C:/Program Files/Java/jdk1.7.0_09/bin"

He intentado esto y funciona bien.


Si el comando java está funcionando y tiene problemas con javac. luego, primero verifique si el archivo javac.exe del directorio bin de jdk está allí o no. Si el archivo javac.exe existe, establezca JAVA_HOME como variable del sistema.


Usted escribió mal el comando set - perdió la barra diagonal inversa después de C: Debería ser:

C:/>set path=C:/Program Files (x86)/Java/jdk1.7.0/bin


prueba esto ... yo también lo tenía, pero ahora se resolvió en XP ...

C:/ YourFolder >set path=C:/Program Files/Java/jdk1.7.0_09/bin; C:/ YourFolder >javac YourCode.java