背景:
前段时间重装电脑,给系统安装了jdk1.6,之后因为换工作新单位用的jdk1.7,就升级了一下jdk(又安装了JDK1.7),重新配置了JAVA_HOME变量,这没有任何问题,之后因为一些原因,又需要切换回JDK1.6(又将JA VA_HOME改为了jdk1.6的安装目录),那么问题来了,执行java -version显示的版本始终是1.7的版本,但是echo %JAVA_HOME%却没错就是JDK1.6的安装目录
定位问题:
于是上网查找问题原因,有的说是jdk1.7及以后会修改注册表,也就是说安装了jdk1.7之后不再是去查找JAVA_HOME环境变量配置的jdk安装路径而是直接走注册表,按照这种说法找到对应的注册表配置如下:
(路径:HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment)
由上面的截图我们可以看到,1.6和1.7都添加了对应的注册表,所以因为注册表的原因导致用命令java -version命令的时候显示的还是jdk1.7的信

在从JDK 1.6升级到1.7后,尽管更改了JAVA_HOME为1.6版本,但执行`java -version`仍显示1.7。问题在于安装1.7时复制了java.exe到System32目录,并且Path环境变量中%SystemRoot%system32在%JAVA_HOME%in之前。解决办法是调整Path变量,确保%JAVA_HOME%in优先于%SystemRoot%system32。
最低0.47元/天 解锁文章
4727

被折叠的 条评论
为什么被折叠?



