Я задавался вопросом, почему команда java -version
является глобально доступной?
Я мог бы запустить его из любого каталога и он работает:
Как это работает?
Вот как PATH
выглядит моя системная переменная:
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
Как по мне, java.exe
находится в%programfiles%\java\jre7\bin
command-line
Pacerier
источник
источник
java.exe
(илиjava.com
и т. Д.) Нет в вашей,PATH
есть другая запись реестра, которая может указывать пути к исполняемым файлам.Ответы:
Как правило, существует группа каталогов, где исполняемые файлы, которые многократно используются, должны быть найдены вашей Windows, но на практике нет конкретной причины использовать команду как глобальную или нет. Разработчики использовали его как «глобальный», где бы он ни захотел, он может это сделать. Если вы хотите использовать какую-либо команду как «глобальную», вам необходимо добавить ее в качестве «Переменной среды Windows» . Для этого вы можете использовать следующие методы :
Добавление вручную с помощью «Свойства системы Windows»:
Используя дополнительный инструмент Setx.exe:
Он не является частью стандартной установки Windows XP, но средство командной строки setx.exe входит в состав средств поддержки Windows XP с пакетом обновления 2 (SP2). Этот инструмент расширяет команду set, чтобы сделать постоянные изменения в переменных среды. Например, чтобы добавить папку C: \ New Folder в путь, команда
Команда «Установить» может использоваться в командной строке вместе с перенаправлением в текстовый файл для составления списка текущих переменных среды. Команда может быть
Имя файла «C: \ env_list.txt» можно заменить любым по вашему выбору.
У Microsoft также есть VBScript, который перечисляет переменные среды на этой странице .
Для тех, кто имеет опыт редактирования реестра, есть другой способ внесения изменений в переменные среды. Переменные среды пользователя хранятся в реестре в ключе:
Системные переменные находятся в ключе:
Обратите внимание, что любая переменная среды в форме, которую необходимо развернуть (например,% PATH%), должна храниться в реестре как значение реестра REG_EXPAND_SZ. Редактирование реестра в основном для сценариев, используемых системными администраторами, и не рекомендуется для обычного пользователя ПК.
Вы можете найти больше информации об этом здесь.
источник
%programfiles%\java\jre7\bin
. Эта папка не отображается в переменной Path моей системы ..«Глобальные команды» определяются переменными среды.
В зависимости от того, какую операционную систему вы используете, она может быть разной.
Наиболее общий способ заключается в
Щелкните правой кнопкой мыши «Мой компьютер», выберите «Свойства»
В Windows7 вам нужно будет выбрать «Расширенные настройки системы» на панели слева.
Открыв диалоговое окно «Свойства системы», выберите вкладку «Дополнительно».
Внизу есть кнопка «Переменные среды»
В диалоге переменных среды вы сможете настроить переменные среды для пользователя или для всей системы.
Например, системная переменная «Упрощенный путь» будет выглядеть примерно так ...
C: \ Program Files \ Java \ jre6 \ bin ; C: \ Ruby19 \ bin;
Исполняемые файлы в этих путях могут быть вызваны непосредственно из командной строки.
Причина, по которой вы можете вызывать calc, mspaint, cmd все из диалогового окна Run, заключается в том, что C: \ windows \ system32 находится в переменной среды Path.
Вы можете добавить пользовательские пути в переменные среды, стараясь не переопределять существующий и разделять пути с помощью точки с запятой. ";"
Затем вы можете запустить исполняемый файл с этого пути непосредственно в командной строке, не вводя весь путь, как команда java -version.
Для получения дополнительной информации см. Следующие ссылки ...
Переменные среды
Понимать и настраивать переменные среды
источник
Вот простой
which
пример, который отображает все попадания команд в PATH для текущих расширений PATHEXT:Поместите это
where.cmd
(позволяяwhich
прийти откуда-то еще, если вы получите это!) И позвоните сwhere java
.Теперь, в моем комментарии выше, я предположил, что если
java
он не появляется в вашемPATH
, вы можете проверитьHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
[ref] , но после того, как вы на самом деле попытаетесь это сделать, он не будет работать с командной строкой, только сShellExecuteEx
такими вещами , как Start Run. и командаstart
CLI.источник
Когда вы вводите команду, оболочка просматривает переменную среды с именем PATH (% PATH%, $ PATH в зависимости от ОС). Он запрашивает каждый каталог в переменной PATH, чтобы узнать, встречает ли он исполняемый файл, который соответствует введенной вами команде. Первый найденный будет выполнен.
Посмотрите другие ответы для некоторых из различных способов установить переменную PATH.
источник