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