news 2026/4/27 15:07:20

windows下的环境变量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
windows下的环境变量

1.介绍

我们在学习java之初会去安装jdk,安装好的第一件事是配置环境变量,那么我们所说的环境变量是什么?

环境变量(environment variables)

环境变量可以理解为一种存储系统配置信息的“全局变量”。它们包含了操作系统和应用程序在运行时所需的各种信息,比如文件路径、系统目录、临时文件夹位置等。

简单来说,环境变量就像是给系统或程序留下的一张“便签”,上面写着“我的安装目录在这里”或“临时文件请放在这里”,这样其他程序就能方便地找到所需资源,而无需用户每次都手动指定。

Windows 中的环境变量主要分为两类:系统变量用户变量

系统变量 (System Variables)

  • 作用范围全局生效。它对这台电脑上所有用户账户都有效。
  • 典型用途:存放系统运行所必需的核心路径和配置。例如,SystemRoot变量指向 Windows 的安装目录(通常是C:\Windows),Path变量中包含系统关键组件的路径。
  • 修改权限:修改系统变量通常需要管理员权限

用户变量 (User Variables)

  • 作用范围仅对当前用户生效。它只影响你当前登录的那个账户,不会影响电脑上的其他用户。
  • 典型用途:存放个人化的配置。例如,TEMP变量定义了当前用户的临时文件存放位置,或者开发者为自己安装的 Python、Java 等工具设置专属路径。
  • 修改权限:修改用户变量通常不需要管理员权限

常用的是PATH环境变量,其作用是告诉系统,当要求系统运行一个程序而没有告诉系统若在当前目录下面没有寻找到此程序,还应到哪些目录下去寻找。

在设置-系统-系统信息-高级系统设置里可以找到环境变量。

2.测试案例

平时打开一个应用程序,一般是双击桌面图标或在开始菜单命令项,无论是桌面的快捷图标还是开始菜单命令项都包含了应用程序的安装位置信息,如果知道了一个应用程序的安装目录位置,也可以通过命令行工具进入启动程序所在的文件,这里以 “Word”软件为例。

我们win+r打开终端,输入Word.exe,参见下图:

我们看到我们是无法启动Word的,为什么? 首先,我们需要知道在命令提示符界面输入Word的作用是告诉操作系统帮我们启动Word,操作系统就会先对当前的C:Users\28470目录进行查找,但是并没有在当前的目录找到,之后去系统目录去找,还是不存在,最后操作系统就会进Path环境变量对其进行查找,由于Path环境变量也不存在该目录,所以会报出当前错误。

所以首先应该找到word所在目录:

C:\Program Files\Microsoft Office\root\Office16

目录里的WINWORD.EXE就是word的启动文件。

配置到系统环境变量的path变量中:

win+r,输入WINWORD.EXE,最后会从该环境变量里找到其启动文件所在目录,回车即可启动word

3.查找顺序

当你在Win+R或命令行输入word时,Windows 的查找逻辑如下:

  1. 当前目录

    • Windows 首先会检查你当前所在的目录(比如C:\Users\28470)里有没有叫word.exe的文件。
    • 如果没有,继续下一步。
  2. 系统目录

    • 接着,它会去 Windows 的系统目录(如C:\Windows\System32)里找。
    • 如果没有,继续下一步。
  3. Path 环境变量(合并后的)

    • 这才是关键一步。Windows 会把 “用户变量”中的 Path 和 “系统变量”中的 Path 合并起来,形成一个完整的搜索列表。
    • 顺序:通常情况下,用户变量的 Path 会排在系统变量的 Path 前面(但这取决于具体的 Windows 版本和配置,一般建议认为它们是合并在一起搜索的)。
    • 它会依次检查 Path 列表中的每一个文件夹,看里面有没有word.exe
  4. 找不到

    • 如果以上所有地方都找遍了还是没有,就会报错:“Windows 找不到文件 'word'”。

以word案例为例:

查找逻辑:
Path 内容:C:\Program Files\Microsoft Office\root\Office16\

在用户目录和系统目录都找不到该文件时,去path变量寻找。

系统逻辑:拿文件夹路径 + 你输入的文件名 =C:\...\Office16\+WINWORD.EXE结果:拼出来是C:\...\Office16\WINWORD.EXE。找到了!运行!

先到先得:只要在某一个目录里找到了对应的文件名,搜索就立刻结束。

顺序很重要:如果两个地方有同名文件,排在Path列表最上面的那个会生效。

需要注意的是:环境变量Path只能帮系统找到真正的程序文件(.exe, .bat, .cmd),它看不懂快捷方式(.lnk)。

4.存取变量

除了path变量外,还有其他变量名:

截图里的那些变量(MYSQL_HOME,NVM_HOME等),它们的作用是“存数据”

  • 比如NVM_HOME=D:\software\java\nvm

    • 这只是为了方便。在配置Path时,你可以写%NVM_HOME%\nvm.exe,而不是写死那一长串路径。
    • 如果你改了NVM_HOME的值,所有引用它的地方都会自动更新。

5.命令行窗口设置环境变量

下面的了解即可,我也就不实验了,还是建议在图形化界面操作。

临时配置(使用set命令)

这种方式只在当前 CMD 窗口有效,窗口一关,配置就没了。适合测试。

1.查看特定变量(比如 Path):cmd

echo %path%

结果:

设置/修改一个变量(临时):cmd

set 变量名=变量值

加路径到 Path(临时):cmd

set Path=%Path%;C:\你的新路径

(注意:%path%代表保留原来的内容,是分号,用来分隔不同的路径)

永久配置(使用setx命令)

这种方式会真正修改系统设置,即使重启电脑也有效。

设置一个新的变量(永久):cmd

setx 变量名 "变量值"

追加路径到 Path(永久 - 用户变量):cmd

setx Path "%Path%;C:\你的新路径"

注意:这会把当前系统 Path 的所有内容复制一份写入到“用户变量”的 Path 中。

追加路径到 Path(永久 - 系统变量):
需要管理员权限运行 CMD,然后使用/M参数:cmd

setx Path "%Path%;C:\你的新路径" /M

重要提示

  • 窗口生效问题:
    使用setx修改成功后,当前这个 CMD 窗口不会生效!你必须新打开一个 CMD 窗口,配置才会生效。
  • Path 长度限制:
    使用setx修改 Path 时要小心,因为setx对字符长度有限制(通常是 1024 个字符)。如果你的 Path 本来就很长,用setx可能会导致后面的路径被截断(丢失)。对于复杂的 Path 修改,建议还是用图形界面操作更安全。
  • 不要覆盖:
    千万不要直接写setx Path "C:\新路径",这样会清空原本所有的 Path 配置,导致系统命令(如ipconfig)都无法使用!一定要带上%Path%
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 15:03:22

《文献综述的底层逻辑正在被重写,好写作AI不是那个写综述的人,是那个帮你把路铺好的人》

引言:学术写作的“第一道坎” “导师说我的文献综述像一篇长长的读后感。” 这是我收到最多的一条私信。不是论点不新,不是分析不透,而是文献综述这一章——本该是论文的“地基”,却写得像“年表”。读完这篇翻下一篇&#xff0…

作者头像 李华
网站建设 2026/4/27 15:01:59

GitMem:基于Git的开发者代码片段与知识管理工具实践指南

1. 项目概述:一个为开发者打造的“记忆外挂”如果你和我一样,每天要在多个Git仓库、无数个分支、以及海量的代码片段和临时想法之间反复横跳,那你一定体会过那种“我上周明明写过这个逻辑,怎么找不到了”的抓狂感。我们的大脑不是…

作者头像 李华
网站建设 2026/4/27 15:00:29

批标准化技术解析:提升神经网络训练效率的关键

1. 批标准化技术解析:神经网络训练的镇定剂在深度神经网络训练过程中,我们经常会遇到模型收敛缓慢、训练不稳定等问题。这种现象就像是一个过度兴奋的学生,无法集中注意力学习。批标准化(Batch Normalization)技术就是…

作者头像 李华
网站建设 2026/4/27 14:55:19

Vue3项目实战:用BMapGL+BMapGLLib实现地图标注与绘制(附完整代码)

Vue3项目实战:用BMapGLBMapGLLib实现地图标注与绘制(附完整代码) 在Vue3生态中集成地图功能已成为企业级应用的常见需求。百度地图GL版(BMapGL)凭借其WebGL渲染引擎,为现代前端项目提供了更流畅的地图交互体…

作者头像 李华
网站建设 2026/4/27 14:52:46

对稀疏矩阵运算的两种优化方式

背景 卷积神经网络(CNN)广泛应用于移动端视觉任务,GEMM 是其推理的性能瓶颈,脉动阵列(SA)通过局部寄存器通信高效加速 GEMM,被广泛应用于 TPU 等商用产品,但传统架构仍有优化空间。面…

作者头像 李华