Все, что Twisty Impersonator сказал в своем ответе , верно. Мысль о том, что переменная пути пользователя добавлена, была выделена, и я считаю, что последствия этого различия требуют некоторого дополнительного подхода.
Путь =% Путь% (Система); % Path% (Пользователь)
Когда вы выполняете исполняемую программу (или любой исполняемый скрипт, такой как .bat
, .vbs
и т. Д.), Вам не нужно указывать полный путь.
Например, чтобы запустить java
, вы можете ввести любой из них:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
Первый пример использует полный путь. Это всегда будет использовать версию Java по этому точному пути.
Второй пример будет проходить через все каталоги в %Path%
переменной среды в поисках исполняемого файла с именем java.exe
. Он запустит самый первый найденный файл и прекратит поиск. Если есть два файла с именем java.exe
где - то на %Path%
, используется только первый из найденных.
Третий пример, как и второй, будет перебирать каталоги, перечисленные в %Path%
. Кроме того, поскольку расширение файла не было предоставлено, список исполняемых расширений файлов добавляется к имени файла в порядке, указанном в %PATHEXT%
переменной среды. Если есть несколько файлов с именем java.com
, java.exe
, java.bat
и т.д. где - то на %Path%
, используется только первый из найденных.
Вы можете просмотреть список расширений исполняемых путей в вашей системе, создав следующий пакетный файл:
@echo off
echo %PATHEXT%
pause
На моей машине это:
.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .wsf; .wsh; .msc; .py
Что все это значит?
В отличие от других переменных среды, пользовательский путь не позволяет переопределить системный путь. Точно противоположный случай. Из приведенных выше примеров, есть много случаев, когда вы можете изменить версию Java по умолчанию. Однако, если в системном пути уже указана версия Java, именно эта версия ВСЕГДА будет найдена первой, поскольку путь ищется по порядку слева направо, а путь пользователя добавляется справа. со стороны, с системным путем слева.
Что я могу с этим поделать?
Если у вас нет доступа к системным переменным среды, вы не можете переопределить программы по умолчанию в системном пути, используя путь пользователя. (Фактически, это должно быть так, иначе определенные программы перестанут работать правильно, и это откроет вашу систему для вмешательства вредоносного программного обеспечения. Никто не хочет этого.)
Вместо этого вы должны использовать полный путь, если вам нужна конкретная версия.