Tout ce que Twisty Impersonator a dit dans sa réponse est correct. L'idée que la variable de chemin utilisateur est ajoutée a été mise en évidence, et je pense que les conséquences de cette différence nécessitent un traitement supplémentaire.
Chemin =% Chemin% (Système); % Path% (utilisateur)
Lorsque vous exécutez un programme exécutable (ou tout script exécutable, par exemple .bat
, .vbs
etc.) vous n'avez pas besoin de fournir le chemin complet.
Par exemple, pour exécuter java
, vous pouvez saisir n'importe lequel de ces éléments:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
Le premier exemple utilise un chemin d'accès complet. Cela utilisera toujours la version de Java sur ce chemin exact.
Le deuxième exemple passera par chacun des répertoires de la %Path%
variable d'environnement, à la recherche d'un fichier exécutable nommé java.exe
. Il exécutera le tout premier trouvé et arrêtera la recherche. S'il y a deux fichiers nommés java.exe
quelque part sur le %Path%
, seul le premier trouvé est utilisé.
Le troisième exemple, comme le second, parcourra les répertoires répertoriés dans le %Path%
. En outre, comme aucune extension de fichier n'a été fournie, une liste d'extensions de fichiers exécutables est ajoutée au nom du fichier, dans l'ordre spécifié dans la %PATHEXT%
variable d'environnement. S'il y a plusieurs fichiers nommés java.com
, java.exe
, java.bat
, etc. quelque part sur le %Path%
, seul le premier trouvé est utilisé.
Vous pouvez voir la liste des extensions de chemin exécutables sur votre système en créant le fichier de commandes suivant:
@echo off
echo %PATHEXT%
pause
Sur ma machine, ce sont:
.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC; .PY
Qu'est-ce que tout cela signifie?
En contraste à d' autres variables d'environnement, le chemin d'utilisateur ne vous permet pas de passer outre le chemin du système. L'exact opposé est le cas. Dans les exemples ci-dessus, il existe de nombreux cas où vous pouvez modifier la version par défaut de Java. Cependant, s'il existe déjà une version Java répertoriée dans le chemin d'accès système, c'est la version qui sera TOUJOURS trouvée en premier, car le chemin est recherché dans l'ordre, de gauche à droite, et le chemin utilisateur est ajouté à droite - côté main, avec le chemin du système sur la gauche.
Que puis-je faire à ce sujet?
Si vous n'avez pas accès aux variables d'environnement système, vous ne pouvez pas remplacer les programmes par défaut sur le chemin système en utilisant le chemin utilisateur. (En fait, il doit en être ainsi, sinon certains programmes cesseraient de fonctionner correctement et cela ouvrirait votre système à la falsification de logiciels malveillants. Personne ne veut ça.)
Au lieu de cela, vous devez utiliser un chemin d'accès complet si vous devez utiliser une version spécifique.