在ahk编写脚本时遇到增加系统变量时,增加后可在我的电脑-右键属性-高级系统设置-环境变量中查看,但是该变量却不能在CMD里调用

我写的是一个JAVA开发环境变量自动写入的小工具

执行如下操作:写入键值对:JAVA_HOME,C:Program FilesJavajdk1.8.0_60

再在Path路径写入相对路径调用:

;%JAVA_HOME%bin;%JAVA_HOME%jrebin;

最后进行广播(即使之立即生效):

EnvUpdate

或者是向顶级窗口传递消息:

SendMessage, 0x1A, 0,"Environment",, ahk_id 0xFFFF

这样的执行是没办法生效的,需要重启电脑或者进入系统环境变量点确定才生效。

问题在于最后的广播广播的是Path键,而JAVA_HOME键仍然没被广播,导致Path键是无效的。


这里可以验证:把**在Path路径写入相对路径调用:

;**%JAVA_HOME%bin;%JAVA_HOME%jrebin;

改为:;

C:Program FilesJavajdk1.8.0_60bin;C:Program FilesJavajdk1.8.0_60jrebin;

最后执行

EnvUpdate

发现这样是有效的。问题验证完毕,解决方法就是再执行了创建JAVA_HOME键之后执行一次EnvUpdate,使得这个环境变量先于Path广播,这样后面Path就能获取到已广播的JAVA_HOME