为了进行实验,我试图找出一种在 Windows 10 中轻松交换 JDK 版本的方法。我之前在 PATH 环境变量中插入了几个值,如下所示:
使用系统界面更新
JAVA_HOME
的值效果很好,但我想看看是否可以使用 PowerShell 来执行此操作,以便可以利用别名。因此,作为测试,我运行了(在非管理模式下)
setx JAVA_HOME "C:\Program Files\Java\jdk-11"
setx PATH "%PATH%;%JAVA_HOME%\bin"
如果我没记错的话,以这种方式设置值是有效的,但当我重新启动终端并检查环境变量时,这些值并没有持续存在。因此,我在最顶部添加了
%SystemRoot%\system32
作为值,然后将 %JAVA_HOME%\bin
值移至其上方。
当我执行此操作并运行命令时,它在用户变量部分中添加了第二个
JAVA_HOME
变量(我删除了它),并且它似乎将 Path 值更改为 %PATH%;%JAVA_HOME%\bin
。这是可行的,但是当我尝试访问对话框进行编辑时,它变成了编辑用户变量而不是环境变量,现在看起来像这样:
原来的PATH变量似乎也发生了变化。当我查看注册表编辑器时,我所拥有的几个值似乎丢失了 - 它似乎无法再通过该环境变量找到 Maven (
M2_HOME
) 或 Dart Sass,但它仍然可以识别 Python。
发生什么事了?我该如何重置?
好吧,我明白发生了什么,这是一个解决方案:基本上,环境变量不能以百分号开头,除非它是系统根变量,否则会破坏界面,显然这是一个已知的错误。