系统环境变量何时生效的 分析调查报告

本文探讨了在Windows操作系统中设置环境变量时遇到的问题及解决方法。主要关注于环境变量设置后,系统如何响应,以及如何确保环境变量的正确应用。通过分析不同情况下的行为,提出了解决方案,包括直接修改环境变量、重启特定进程和重启或注销电脑等方法,以确保环境变量的生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来讲讲现象,对于新建系统环境变量存在差异型:

         1、开始 ——>Run ——>cmd, 查看环境变量为我们在我的电脑中设置的环境变量

         2、启动任务管理器——>先结束cmd.exe进程——>查看重新新建打开一个cmd.exe, 发现此时环境变量中会丢失。

       发现上面是在eclipse中用System.getenv("变量名") 取环境变量的时候,发生的。当时那个郁闷,你懂的。
先写在这儿,稍后查明原因继续。

       经过几周的纠结之后,发现设置的环境变量经过set之后,是生效的。产生上面差异性的原因在于,没有重新启动任务管理器。这就导致系统取的进程仍然是原来没有修改环境变量的进程,当然得不到最新设置的环境变量值。

切忌:产生不一致的原因多半是没有重启相关程序或者软件,需要特别注意。

 

原因分析:
        解释一下相关名称:
                     explorer               windows资源管理器
                     autoexec.bat        windows每次必用的程序(比如控制键盘的程序,控制鼠标的程序)
                     winLnit                 Windows启动应用程序
                     VxD                      Windows虚拟设备

         软件安装完成之后,与Explorer有关的设置须等待Explorer重启后才能生效;而autoexec.bat中设置环境变量也只能在重新启动计算机时装入;系统DLL只能通过WinInit.exe在进入Windows前的DOS环境下替换,静态VxD只能在装入 Windows的时候载入。
 因此,软件在安装完成之后重启计算机才能使软件运行环境生效。

       在 WINDOWS操作系统上,一般一个正在运行中的程序,操作系统是不让你修改它的,修改包括替换,改动和删除。那么有时,软件需要向系统目录中写入一个DLL,而系统目录中原来已经有同名的DLL并且这个DLL目前正在被系统使用,因此不能用新版本去替换它,这个时候就需要重启,在重启的过程中,在这个DLL旧的版本被使用之前用新版本替换它。这就是为什么要重启或者注销的原因。

结论:
        即当系统使用这个环境变量时候,修改该变量值不会生效,要重启或者注销之后刷新注册表,修改的环境变量才会生效;当环境变量没有被系统使用时候,修改立即生效。
        修改环境变量之后,如果受影响的是应用程序,那么只要简单地重新启动此应用程序,环境变量的修改就会反映到该程序中,而不必重新启动计算机;但是,如果受影响的是系统服务,就必须重新启动才能将环境变量的修改反映到系统服务中(因为没有办法在不重启计算机的情况下重新启动系统服务管理器)

 

解决方案:
     方案一:不用重启电脑,使环境变量生效:
          A、 我的电脑>属性>高级>环境变量,添加或者修改环境变量;
          B、 运行“DOS命令提示符“或者 run > 输入cmd
          C、 修改皇家变量值。假设修改PATH变量, 则输入 set path = D:   或者   直接输入set,dos会显示全部环境变量,然后进行D步骤操作
          D、 关闭DOS窗口
          E、 重新打开DOS窗口,输入echo   “PATH” 查看PATH变量,和在我的电脑里修改的环境变量一致,表明修改变量已经生效。
       说明:
              不用担心在DOS窗口的修改会影响我的电脑>属性>高级>环境变量里的修改,DOS窗口的环境变量只是Windows环境变量的一个副本,副本的改动不会影响正本,但会触发正本的刷新,这正是我想要的——让环境变量生效。对于新建环境变量,比如A,dos 中set 的值为A ,即 set A = 值,这样就让A变量生效。

 

    方案二:重启Window自带的EXPLORER.EXE程序(模拟重启操作)
        先按ctrl+Alt+Del组合键调出任务管理器,然后定位到“进程”项,结束调EXPLORER.EXE进程,然后再点工具栏中的“文件”,在下拉菜单中选择“新建任务(运行。。。)”,会跳出一个框,在“打开”右边的框中输入刚才结束调的那个进程“EXPLORER.EXE”,重新启动该×程序。此时,就如同注销或者重启电脑了。

  

    方案三:重启电脑或者注销,重新登录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值