修改java版本环境变量不生效

起因

先上图说明问题(电脑含有多个java版本,因为需要维护很老的项目,需要切换至以前的java版本,当然也可以不用修改环境变量,直接指定)

修改java版本环境变量不生效_环境变量配置

环境变量配置

修改java版本环境变量不生效_环境变量_02

修改java版本环境变量不生效_环境变量配置_03

正常 java -version 应该会输出 1.6 的版本,但是

修改java版本环境变量不生效_解决方法_04

只能说就离谱,好吧。

查一下 java 位置

修改java版本环境变量不生效_解决方法_05

明明是指定到了 1.6 版本的,但是 version 却是 1.7 的,莫非是上面 System32的导致的?

解决方法

方法一:修改注册表(不推荐)

  • 把 1.6 的 java.exe 复制到 System32 (C:\Windows\System32) 中,就上面的那俩地址

  • 再次使用 java -version

  • 修改java版本环境变量不生效_环境变量配置_06

  • 不是吧,注册表还有问题 (Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'),那就修改注册表,找到相关路径
    计算机\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment

  • 修改 CurrentVersion 改为 1.6

  • 修改java版本环境变量不生效_解决方法_07

  • 使用 java -version 显示正常

  • 修改java版本环境变量不生效_解决方法_08

方法二:还是修改环境变量(没想到吧)

  • where java 中看到,首先生效的是 System32中的 java,然后是 1.6 中的java,那把 1.6 的java提前,即可生效。
    移动 java_home 至 system32 之前
  • 修改java版本环境变量不生效_其他_09
  • 使用java -version和where java
  • 修改java版本环境变量不生效_解决方法_10