Pourquoi est-ce que je peux exécuter un programme qui n'est pas dans ma variable d'environnement PATH?

Je me demandais pourquoi la version de java -version est accessible à l' échelle mondiale ?

Je pourrais l'exécuter à partir de n'importe quel répertoire et son fonctionnement:

Entrez la description de l'image ici

Comment ça marche?

C'est à quoi ressemble la variable PATH mon système:

 C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common; %SystemRoot%\system32; %SystemRoot%; %SystemRoot%\System32\Wbem; %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\ 

Pour moi, java.exe se trouve dans %programfiles%\java\jre7\bin

En règle générale, il existe un groupe de répertoires où les fichiers exécutables qui sont utilisés à maintes reprises se trouvent par votre Windows, mais dans la pratique, il n'y a pas de raison spécifique d'utiliser une commande globale ou non. Les développeurs l'ont inclus comme «global» où ils le souhaitent, ils sont libres de le faire. Si vous souhaitez utiliser n'importe quelle commande en tant que «global», vous devrez ajouter votre commande en tant que «Variable Environnement Windows» . Pour ce faire, vous pouvez utiliser les méthodes suivantes :

  1. Ajout manuellement avec "Windows System properties": Entrez la description de l'image ici

  2. Utilisation de l'outil complémentaire Setx.exe:

Il ne fait pas partie de l'installation standard de Windows XP, mais un outil de ligne de commande appelé setx.exe est inclus dans les outils de support Windows XP Service Pack 2. Cet outil étend la commande set afin que les modifications permanentes dans les variables d'environnement puissent être réalisées. Par exemple, pour ajouter un dossier C: \ Nouveau dossier au chemin, la commande serait

 setx path "%PATH%;C:\New Folder" 
  1. Scripts pour les variables d'environnement d'inscription:

La commande "Set" peut être utilisée dans une invite de commande avec une redirection vers un fichier texte pour créer une liste des variables d'environnement actuelles. La commande pourrait être

 set > C:\env_list.txt 

Le nom de fichier "C: \ env_list.txt" peut être remplacé par n'importe quel choix.

Microsoft possède également un VBScript qui répertorie les variables d'environnement sur cette page .

  1. Clés de registre pour les variables d'environnement:

Pour ceux qui ont l'expérience de l'édition du Registre, il existe une autre façon de modifier les variables d'environnement. Les variables d'environnement utilisateur sont stockées dans le Registre dans la clé:

 HKEY_CURRENT_USER\Environment 

Les variables système se trouvent dans la clé:

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 

Notez que toute variable d'environnement qui est dans la forme qui doit être développée (par exemple,% PATH%) doit être stockée dans le registre en tant que valeur de registre REG_EXPAND_SZ. L'édition du Registre concerne principalement les scripts utilisés par les administrateurs système et n'est pas recommandé pour l'utilisateur moyen de l'ordinateur.

Vous trouverez ici plus d'informations à ce sujet .

Les «commandes globales» sont déterminées par vos variables d'environnement.

Selon le système d'exploitation que vous utilisez, il est plutôt différent.

La manière la plus générique est par

Cliquez avec le bouton droit sur "Mon ordinateur" Sélectionnez "Propriétés"

Dans Windows7, vous devrez sélectionner "Advanced System Settings" dans le volet sur la gauche.

Une fois que vous avez ouvert la boîte de dialogue Propriétés du système, sélectionnez l'onglet "Avancé".

En bas, il y a un bouton "Variables d'environnement"

Dans la boîte de dialogue des variables d'environnement, vous pourrez configurer des variables environnementales par utilisateur ou pour l'ensemble du système.

Par exemple, la variable système "Chemin" simplifiée ressemblerait à quelque chose comme ça …

C: \ Program Files \ Java \ jre6 \ bin ; C: \ Ruby19 \ bin;

Les exécutables sur ces chemins peuvent être appelés directement à partir de la ligne de commande.

La raison pour laquelle vous pouvez appeler calc, mspaint, cmd tout de la boîte de dialogue Exécuter est parce que C: \ windows \ system32 est dans la variable d'environnement Path.

Vous pouvez ajouter des chemins personnalisés dans les variables environnementales, veiller à ne pas remplacer l'existant et à séparer les chemins en utilisant un point-virgule. ";"

Vous pouvez ensuite exécuter un exécutable à partir de ce chemin directement en ligne de commande sans taper sur l'intégralité du chemin, comme la commande java -version.

Pour plus de lecture, veuillez consulter les liens suivants …

Variables d'environnement

Comprendre et configurer les variables d'environnement

Java.exe Recherche sur une nouvelle installation

Voici un simple which affiche tous les résultats de commande dans PATH pour les extensions PATHEXT actuelles:

 @for %%I in ("%path:;=\" "%") do @for %%E in (%pathext:;= %) do @if exist "%%~dpI%1%%E" @echo %%~dpI%1%%E 

Mettez cela dans where.cmd (permettant de venir d'ailleurs si vous l'obtenez!) Et appelez-le avec where java .

Maintenant, dans mon commentaire ci-dessus, j'ai suggéré que si java n'apparaît pas dans votre PATH , vous pouvez vérifier HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths [ref] , mais après avoir réussi à essayer cela, cela ne fonctionne pas avec La ligne de commande, uniquement avec des choses qui utilisent ShellExecuteEx , telles que Start Run et la commande start CLI.

Lorsque vous entrez une commande, le shell examine une variable d'environnement nommée PATH (% PATH%, $ PATH selon le système d'exploitation). Il interroge chaque répertoire sur le PATH pour voir s'il rencontre un exécutable qui correspond à la commande que vous avez entrée. Le premier qu'il trouve sera exécuté.

Voir d'autres réponses pour certaines des différentes façons de définir la variable PATH.