我正在尝试通过Powershell脚本将%JAVA_HOME%\bin
添加到Path
环境变量中。
JAVA_HOME
变量本身指向C:\Program Files\Java\jdk1.8.0_172
。
当我手动从环境变量窗口添加%JAVA_HOME%\bin
时
然后从 Powershell 调用这行代码以获取 Path
变量的值
[Environment]::GetEnvironmentVariable('Path', [System.EnvironmentVariableTarget]::Machine)
看起来执行上面的命令会将%JAVA_HOME%\bin
转换为我定义的实际路径,即C:\Program Files\Java\jdk1.8.0_172
。
输出结果如下:
...;C:\Program Files\nodejs;C:\Program Files\Java\jdk1.8.0_172\bin;
但是当我通过以下代码的Powershell脚本添加%JAVA_HOME%\bin
时
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine) + "%JAVA_HOME%\bin", [EnvironmentVariableTarget]::Machine)
然后再次运行
GetEnvironmentVariable
函数,输出结果与通过环境变量窗口添加路径时不同。它不会将%JAVA_HOME%\bin
转换为实际路径。输出结果如下:
....;C:\Program Files\nodejs\;C:\Program Files\Java\jdk1.8.0_172\bin;%JAVA_HOME%\bin
这是预期的吗?还是我漏掉了什么?
实际上,我可以直接将真实路径附加到“Path”变量中,但我想利用“JAVA_HOME”变量,以便路径在一个位置。
$($env:JAVA_HOME)\bin
才能正常工作,因为优先级的原因,我需要修改 PATH 中的顺序。我将其放在开头而不是结尾进行添加。谢谢! - davidmpaz