Je me demandais pourquoi la commande java -version
est globalement accessible?
Je pourrais l'exécuter à partir de n'importe quel répertoire et son fonctionnement:
Comment ça marche?
Voici à quoi PATH
ressemble ma variable système :
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
Quant à moi, java.exe
est situé dans%programfiles%\java\jre7\bin
command-line
Pacerier
la source
la source
java.exe
(oujava.com
, etc.) n'est pas dans votre,PATH
il existe une autre entrée de registre qui peut spécifier des chemins exécutables.Réponses:
En règle générale, il existe un groupe de répertoires où les fichiers exécutables qui sont utilisés à plusieurs reprises doivent être trouvés par votre Windows, mais dans la pratique, il n'y a aucune raison spécifique d'utiliser une commande comme globale ou non. Les développeurs avaient l'habitude de l'inclure comme «global» où ils le souhaitaient, ils étaient libres de le faire. Si vous souhaitez utiliser une commande comme "globale", vous devrez ajouter votre commande en tant que "Variable Windows Enviroment" . Pour ce faire, vous pouvez utiliser les méthodes suivantes :
Ajout manuel avec "Propriétés système Windows":
À l'aide de l'outil complémentaire Setx.exe:
Il ne fait pas partie de la configuration standard de Windows XP, mais un outil en ligne de commande appelé setx.exe est inclus dans les outils de support de Windows XP Service Pack 2. Cet outil étend la commande set afin que des modifications permanentes des variables d'environnement puissent être apportées. Par exemple, pour ajouter un dossier C: \ New Folder au chemin, la commande serait
La commande "Set" peut être utilisée dans une invite de commande avec une redirection vers un fichier texte pour faire une liste des variables d'environnement actuelles. La commande peut être
Le nom de fichier "C: \ env_list.txt" peut être remplacé par celui de votre choix.
Microsoft a également un VBScript qui répertorie les variables d'environnement sur cette page .
Pour ceux qui ont l'habitude de modifier le Registre, il existe un autre moyen d'apporter des modifications aux variables d'environnement. Les variables d'environnement utilisateur sont stockées dans le Registre dans la clé:
Les variables système se trouvent dans la clé:
Notez que toute variable d'environnement sous 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. La modification du registre concerne principalement les scripts utilisés par les administrateurs système et n'est pas recommandée pour l'utilisateur moyen d'un PC.
Vous pouvez trouver plus d'informations à ce sujet ici.
la source
%programfiles%\java\jre7\bin
. Ce dossier n'apparaît pas dans la variable Path de mon système.Les "commandes globales" sont déterminées par vos variables d'environnement.
Selon le système d'exploitation que vous utilisez pour y accéder, il est assez différent.
La façon la plus générique est de
Faites un clic droit sur "Poste de travail" Sélectionnez "Propriétés"
Sous Windows7, vous devrez sélectionner "Paramètres système avancés" dans le volet de gauche.
Une fois la boîte de dialogue Propriétés système ouverte, sélectionnez l'onglet "Avancé".
En bas, il y a un bouton "Variables d'environnement"
Dans la boîte de dialogue Variables d'environnement, vous pourrez configurer des variables d'environnement par utilisateur ou pour l'ensemble du système.
Par exemple, la variable système "Path" simplifiée ressemblerait à ceci ...
C: \ Program Files \ Java \ jre6 \ bin ; C: \ Ruby19 \ bin;
Les exécutables de ces chemins peuvent être appelés directement à partir de la ligne de commande.
La raison pour laquelle vous pouvez appeler calc, mspaint, cmd all à partir de la boîte de dialogue Exécuter est parce que C: \ windows \ system32 se trouve dans la variable d'environnement Path.
Vous pouvez ajouter des chemins personnalisés dans les variables d'environnement, en veillant à ne pas remplacer celui existant et à séparer les chemins à l'aide d'un point-virgule. ";"
Vous pouvez ensuite exécuter un exécutable à partir de ce chemin directement en ligne de commande sans taper le chemin entier, comme la commande java -version.
Pour plus de lecture, veuillez consulter les liens suivants ...
Variables d'environnement
Comprendre et configurer les variables d'environnement
la source
Voici un simple
which
qui affiche tous les appels de commande dans PATH pour les extensions PATHEXT actuelles:Mettez-le
where.cmd
(en permettantwhich
de venir d'ailleurs si vous l'obtenez!) Et appelez-le avecwhere java
.Maintenant, dans mon commentaire ci-dessus, j'ai suggéré que si
java
n'apparaissait pas dans votrePATH
, vous pouvez vous enregistrerHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
[ref] , mais après avoir réellement essayé cela, cela ne fonctionne pas avec la ligne de commande, uniquement avec des choses qui utilisentShellExecuteEx
, comme Démarrer Exécuter et lastart
commande CLI.la source
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 du PATH pour voir s'il rencontre un exécutable qui correspond à la commande que vous avez entrée. Le premier qu'il trouvera sera exécuté.
Voir les autres réponses pour certaines des différentes façons de définir la variable PATH.
la source