为什么我可以执行不在我的 PATH 环境变量中的程序?

Pac*_*ier 9 command-line

我想知道为什么该命令java -version可以全局访问?

我可以从任何目录运行它,它的工作原理是:

在此处输入图片说明

它是如何工作的?

这是我的系统PATH变量的样子:

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

至于我,java.exe位于%programfiles%\java\jre7\bin

Dio*_*ogo 13

通常,您的 Windows 可以在一组目录中找到重复使用的可执行文件,但在实践中,没有特定理由将命令用作全局或不使用。开发人员过去常常将其作为“全局”包含在任何他们想要的地方,他们可以自由地这样做。如果要将任何命令用作“全局”,则需要将命令添加为“Windows 环境变量”。为此,您可以使用以下方法

  1. 使用“Windows 系统属性”手动添加: 在此处输入图片说明

  2. 使用附加工具 Setx.exe:

它不是标准 Windows XP 安装程序的一部分,但名为 setx.exe 的命令行工具包含在 Windows XP Service Pack 2 支持工具中。此工具扩展了 set 命令,以便可以对环境变量进行永久更改。例如,要将文件夹 C:\New Folder 添加到路径中,命令将是

setx path "%PATH%;C:\New Folder" 
Run Code Online (Sandbox Code Playgroud)
  1. 列出环境变量的脚本:

“Set”命令可以在命令提示符下与重定向到文本文件一起使用,以生成当前环境变量的列表。命令可能是

set > C:\env_list.txt 
Run Code Online (Sandbox Code Playgroud)

文件名“C:\env_list.txt”可以替换为您选择的任何一个。

Microsoft 也有一个 VBScript,用于在此页面上列出环境变量。

  1. 环境变量的注册表项:

对于那些有编辑注册表经验的人来说,还有另一种方法可以更改环境变量。用户环境变量存储在注册表中的键值中:

HKEY_CURRENT_USER\Environment
Run Code Online (Sandbox Code Playgroud)

系统变量可以在key中找到:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Run Code Online (Sandbox Code Playgroud)

请注意,任何需要扩展形式的环境变量(例如,%PATH%)都必须作为 REG_EXPAND_SZ 注册表值存储在注册表中。编辑注册表主要用于系统管理员使用的脚本,不建议普通 PC 用户使用。

您可以在此处找到有关它的更多信息

  • Java.exe 也位于 %SystemRoot%\System32\ 中,它确实出现在您的 PATH 变量中 (7认同)

Dwa*_*ang 5

“全局命令”由您的环境变量决定。

根据您使用的操作系统来设置它是相当不同的。

最通用的方法是通过

右击“我的电脑”选择“属性”

在 Windows7 中,您必须在左侧窗格中选择“高级系统设置”。

打开“系统属性”对话框后,选择“高级”选项卡。

在底部,有一个按钮“环境变量”

在环境变量对话框中,您将能够为每个用户或整个系统配置环境变量。

例如,简化的系统变量“路径”看起来像这样......

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

这些路径中的可执行文件可以直接从命令行调用。

您可以从运行对话框中调用 calc、mspaint、cmd 的原因是因为 C:\windows\system32 位于 Path 环境变量中。

您可以将自定义路径添加到环境变量中,注意不要覆盖现有路径并使用分号分隔路径。“;”

然后,您可以直接在命令行中从该路径运行可执行文件,而无需键入整个路径,例如 java -version 命令。

如需更多阅读,请参阅以下链接...

环境变量

了解和配置环境变量

Java.exe 搜索新安装