Переменная среды Windows 7 не работает в пути

Я пытаюсь настроить некоторый путь, используя переменную среды. Я добавил переменную среды "MAVEN_HOME" со значением "C:\maven". Затем на пути я добавил "% MAVEN_HOME%\bin;... rest". Когда я набираю "echo $MAVEN_HOME%", я получаю правильный "C:\maven", напечатанный на экране. Но когда я набираю "mvn", который является пакетным файлом в каталоге "bin", он не может его найти.

Итак, я вручную добавил весь путь в PATH. "C:\Maven\Bin;... остальное" и он смог найти "mvn" и выполнить его.

Может ли кто-нибудь помочь мне в том, что я сделал не так?

12 ответов

У меня была точно такая же проблема, чтобы решить ее, вы можете сделать одну из двух вещей:

  • Поместите все переменные в системные переменные вместо пользователя и добавьте те, которые вы хотите использовать PATH

Или

  • Поместите все переменные в пользовательские переменные и создайте или отредактируйте переменные PATH в пользовательской переменной, а не в системе. Переменные пути в системе не расширяют пользовательские переменные.

Если все это правильно, но проблема все еще присутствует, вам нужно проверить системный реестр в HKEY_CURRENT_USER\Environment, чтобы убедиться, что тип ключа "PATH" REG_EXPAND_SZ (не REG_SZ).


Проверьте, существует ли пробельный символ между предыдущим и предыдущим путями:

Неправильно: c:\path1; c:\Maven\bin\; c:\path2\

Правильно: c:\path1;c:\Maven\bin\;c:\path2\


Моя проблема оказалась неловкой:

Перезапустите командную строку и новые переменные должны обновить


Такие вещи, как наличие% PATH% или пробелов между элементами на вашем пути, нарушат его. Будьте осторожны.

Да, пути Windows, содержащие пробелы, вызовут ошибки. Например, приложение добавило это в начало определения%% PATH системы:

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

из-за чего все пути в% PATH% не были установлены в окне cmd.

Мое решение состоит в том, чтобы разграничить расширенную переменную пути в двойных кавычках, где необходимо:

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

Поэтому пробелы игнорируются, и полная переменная пути обрабатывается правильно.


Если какая-либо ошибка вообще в окнах PATH будет молча игнорировать ее. Такие вещи, как наличие% PATH% или пробелов между элементами на вашем пути, нарушат его. Будьте предупреждены


% M2% и% JAVA_HOME% необходимо добавить к переменной PATH в переменных USER, а не в переменных SYSTEM.


Также стоит убедиться, что вы используете командную строку в качестве администратора - системная блокировка на моем рабочем компьютере означала, что стандартный cmd, только что сообщенный mvn, не может быть найден при наборе текста mvn --version

Чтобы использовать "начать" все программы > аксессуары ", щелкните правой кнопкой мыши" командную строку "и выберите" запустить как администратор ".


Если значение PATH будет слишком длинным после того, как ваша переменная PATH пользователя будет объединена в переменную PATH среды, Windows не сможет автоматически конкатенировать переменную пользователя PATH.

Это может произойти после установки нового программного обеспечения и добавления чего-то к PATH, тем самым нарушая существующее установленное программное обеспечение. Ошибка Windows!

Лучшее решение - отредактировать одну из переменных PATH на панели управления и удалить записи, которые вам не нужны. Затем откройте новое окно CMD и посмотрите, показаны ли все записи в "echo% PATH%".


У меня была та же проблема, я исправил ее, удалив PATHEXT из пользовательской переменной. Он должен существовать только в Системной переменной с .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

Также удалите переменную от пользователя к системе и включите только этот путь в пользовательскую переменную


Чтобы решить эту проблему, я использовал команду setx, которые пытаются установить переменные уровня пользователя.

Я использовал ниже...

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

ПРИМЕЧАНИЕ. Windows пытается добавить существующее значение переменной к существующему значению переменной. Поэтому нет необходимости давать дополнительные% PATH%... что-то вроде% JAVA_HOME%\bin; % PATH%


Убедитесь, что правильно настроены как системные, так и пользовательские пути.


Скопируйте значение пути в блокнот и проверьте, соответствует ли это соответствует эхо% пути% в окне терминала и при необходимости вносит изменения. Затем удалите значение старого пути и вставьте значение блокнота обратно. Я предполагаю, что какой-то невидимый символ, введенный там некоторой установкой, исказил значение пути.

licensed under cc by-sa 3.0 with attribution.