В Windows 10 Pro:
Я только что скачал и установил (то есть распаковал) последнюю версию Maven в каталог при подготовке будущего проекта разработки. Затем - в соответствии с инструкциями - я определил две переменные окружения:
M2=%M2_HOME%\bin
M2_HOME=C:\Program Files\Apache Software Foundation\apache-maven-3.6.0
Но по какой-то странной причине бывший% -заполнитель 'M2' не обрабатывается, то есть "set" просто возвращает:
>set
...
M2=%M2_HOME%\bin
M2_HOME=C:\Program Files\Apache Software Foundation\apache-maven-3.6.0
...
Я нажал ОК и закрыл диалог env-var и диалог настроек системы. Я перезапустил новую cmd-оболочку, я даже убил и перезапустил Windows Explorer (то есть рабочий стол), который обязательно должен вызвать повторное чтение и повторную замену этих переменных, а затем снова перезапустил cmd с этого рабочего стола, но M2
остается на незамещенный %M2_HOME%\bin
-value.
Я также проверил в реестре:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\M2
определен как REG_EXPAND_SZ, поэтому он должен быть оценен и% -vars должны быть заменены, но, очевидно, здесь это не так.
Если я задаю очень же значение вручную в командной строке это, конечно , правильно замещенный , как можно было бы ожидать, но не по умолчанию с помощью определения окр-вара , показанного выше.
Итак, что мне здесь не хватает? Почему этот M2_HOME как часть значения M2 неправильно подставлен?
Редактировать: добавил этот вывод по запросу JosefZ:
C:\Users\mmo>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -v M2*
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
M2 REG_EXPAND_SZ %M2_HOME%\bin
M2_HOME REG_EXPAND_SZ %ProgramFiles%\Apache Software Foundation\apache-maven-3.6.0
End of search: 2 match(es) found.
C:\Users\mmo>reg query HKCU\Environment -v M2*
End of search: 0 match(es) found.
C:\Users\mmo>