2011-12-31 10 views
39

Estoy intentando configurar una ruta con la variable de entorno. Agregué una variable de entorno "MAVEN_HOME" con el valor "C: \ maven". Luego en la ruta agregué "% MAVEN_HOME% \ bin; ... rest". Cuando escribo "echo $ MAVEN_HOME%" obtengo el "C: \ maven" correcto impreso en la pantalla. Pero cuando escribo "mvn" que es un archivo por lotes en el directorio "bin", no puede encontrarlo.La variable de entorno de Windows 7 no funciona en la ruta

Por lo tanto, agregué manualmente la ruta completa en PATH. "C: \ maven \ bin; ... rest" y fue capaz de encontrar "mvn" y ejecutarlo.

¿Alguien me podría ayudar lo que hice mal?

+0

¿Qué significa echo% PATH% output? – paislee

+3

Tuve el mismo problema y descubrí que era un problema de longitud de ruta. Creé nuevas variables de entorno, P86 y P64, para reemplazar todas las apariciones de referencias "C: \ Archivos de programa (x86)" y "C: \ Archivos de programa" en la variable PATH existente. La nueva ruta (Sistema + Usuario) es actualmente de 2754 caracteres después de la expansión de las nuevas variables. Leí en hilos similares que el límite teórico es de 32 KB, pero aparentemente ese no es el límite práctico. – hknust

Respuesta

46

que tenía exactamente el mismo problema, para resolverlo, Puede hacer una de estas dos cosas:

  • Poner todas las variables en Variables del sistema ins tead de usuario y agregar las que desee a PATH

O

  • Pon todas las variables en Variables de usuario, y crear o editar las variables PATH en la variable de usuario, no en Sistema. Las variables de ruta en el sistema no expanden las variables de usuario.

Si lo anterior son los correctos, pero el problema todavía está presente, es necesario comprobar el registro del sistema, en HKEY_CURRENT_USER \ Environment, para asegurarse de que el "camino" tipo de clave es REG_EXPAND_SZ (no REG_SZ).

+1

Hola @pcmind, el mío está en REG_SZ, ¿qué debo hacer ahora? –

+0

haga una copia del valor de la tecla "RUTA" (con tipo REG_SZ), elimine la tecla "RUTA", cree una nueva clave con tipo REG_EXPAND_SZ y pegue el valor anterior. reiniciar la computadora. –

+0

Esto podría ser una opción. Sin embargo, la sugerencia a continuación tiene más sentido. Si no hay ningún tipo de problema de espacio, incluso si define a nivel del usuario y del sistema, debería funcionar. – Saman

5

% M2% y% JAVA_HOME% deben agregarse a una variable PATH en las variables USER, no en las variables SYSTEM.

+0

No es cierto. Los tengo en las variables del SISTEMA. Para mí, fueron los espacios en los caminos, como 'C: \ Program Files', quienes causaron el problema de OP. –

66

Comprobar si hay un carácter de espacio entre la trayectoria anterior y la siguiente:

incorrecta: c:\path1; c:\Maven\bin\; c:\path2\

correcta: c:\path1;c:\Maven\bin\;c:\path2\

+6

¡Usted me salvó el día, señor! Muchas gracias! –

+3

¡Muchas gracias! ¡¡¡¡¡Funciona!!!!! – leon

+2

Eso es correcto. funcionó para mí. – Saman

5

Si hay algún error en la PATH, las ventanas lo ignorarán silenciosamente. Cosas como tener% PATH% o espacios entre los elementos en tu camino lo romperán. Advierta

+0

Esto funcionó para mí! No tenía idea de esto en absoluto. – Antinous

14

Las cosas como tener% PATH% o espacios entre los elementos en su camino lo romperán. Ten cuidado.

Sí, las rutas de acceso de Windows que incluyen espacios causarán errores. Por ejemplo una aplicación añadió esta a la parte frontal del sistema% PATH% definición de la variable:

C:\Program Files (x86)\WebEx\Productivity Tools;C:\Sybase\IQ-16_0\Bin64; 

que causó todas las rutas en% PATH% de no ajustarse en la ventana de cmd.

Mi solución es para demarcar la variable de ruta extendida entre comillas dobles cuando sea necesario: por lo tanto,

"C:\Program Files (x86)\WebEx\Productivity Tools";C:\Sybase\IQ-16_0\Bin64; 

Los espacios se ignoran y la variable de ruta completa se analiza correctamente.

+0

Es * CAN * causar errores para una pequeña minoría de usuarios. Estoy investigando algo similar, pero su conclusión es incorrecta aquí. La mayoría de los usuarios tienen rutas adjuntas o antepuestas con espacios sin problema, el punto y coma es un delimitador fino que significa que no se requieren comillas, pero hemos encontrado que para algunos usuarios esto puede ser cierto. ¿Por qué es que una pequeña minoría de usuarios se ven afectados de esta manera, pero no otros? Desconocido a partir de este momento. Es por eso que esa aplicación se agregó como tal, no fue una simple omisión. –

4

También vale la pena asegurarse de que está utilizando el símbolo del sistema como administrador - el bloqueo del sistema en mi máquina de trabajo significaba que el cmd estándar mvn acaba de informar no se pudo encontrar al escribir mvn -version

Para haga clic en 'Inicio> todos los programas> accesorios', haga clic derecho en 'símbolo del sistema' y seleccione 'ejecutar como administrador'.

0

Copie el valor de la ruta al bloc de notas y verifique si esto corresponde con el echo% path% en la ventana del terminal y realice los cambios necesarios. A continuación, elimine el valor de la ruta anterior y pegue el valor del bloc de notas. Supongo que algún carácter invisible ingresado por alguna instalación corrompió el valor de la ruta.

3

Si el valor PATH sería demasiado largo después de que la variable PATH de su usuario se haya concatenado en la variable PATH de entorno, Windows silenciosamente no podrá concatenar la variable PATH del usuario.

Esto puede suceder fácilmente después de que se instala un nuevo software y agrega algo a PATH, rompiendo así el software instalado existente. ¡Windows falla!

La mejor solución es editar una de las variables de PATH en el Panel de control y eliminar las entradas que no necesita. Luego abra una nueva ventana de CMD y vea si todas las entradas se muestran en "echo% PATH%".

1

Tuve el mismo problema, lo solucioné eliminando PATHEXT de la variable de usuario. Solo debe existir en la variable del sistema con .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC

Eliminar también la variable del usuario al sistema y solo incluya esa ruta en la variable de usuario

0

Asegúrese de que las rutas del sistema y del usuario estén configuradas correctamente.

25

Mi problema resultó ser vergonzosamente simple:

símbolo del sistema Reiniciar y las nuevas variables debe actualizar

+0

¡No sé por qué, pero funcionó para mí! ¡¡GRACIAS!! – nikk

+6

No ignore esta respuesta; 9 veces de cada 10 este es el problema. – aguertin

1

Para hacer frente a este problema, he utilizado comando setx que tratan de establecer las variables de nivel de usuario.

utilicé abajo ...

setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_92" 

setx PATH %JAVA_HOME%\bin 

NOTA: Windows intenta anexar valor de la variable proporcionada al valor de la variable existente. Entonces no hay necesidad de dar%% PATH% extra ... algo como% JAVA_HOME% \ bin; % RUTA%

+1

Hay una manera alternativa de ir al Panel de control -> Todos los elementos del panel de control -> Cuentas de usuario y luego hacer clic en "Cambiar las variables de entorno" en la barra de navegación izquierda ... pero de alguna manera no funciona en Windows 7 y 10. Hasta la dirección de Microsoft que podemos utilizar por encima de setx. –

Cuestiones relacionadas