could not open Java\jre7\lib\amd64\jvm.cfg解决方案

场景

        更新jdk1.7.0_15到jdk1.8.0_161。修改环境变量指向下载的安装包之后,执行java指令,提示如下:

        C:\Users\admin>java -version
        Error: could not open `C:\Program Files\Java\jre7\lib\amd64\jvm.cfg'


原因

        之前采用的是jdk1.7.0_15.msi进行jdk的安装,在安装时会把java命令放到C:/windows/system32目录下(此目录并不是指jdk的安装路径),所以会发现在C:/windows/system32路径下,会有java.exe 、javaw.exe、javaws.exe三个可执行程序。按照环境变量的搜索优先级,先在当前目录下找,再在系统变量中的path中先后查找,而C:/windows/system32在path中是最新被执行的,在后面的%JAVA_HOME%\bin没有机会被执行到,所以就会出现上面的错误。将%JAVA_HOME%\bin提前到%JAVA_HOME%\bin之前可以解决问题。


解决

        删除c:/windows/system32/目录下的java.exe 、javaw.exe、javaws.exe

添加系统变量 JAVA_HOME   :  C:\Program Files\Java\jdk1.8.0_161

添加系统变量  classpath  : .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

path追加  %JAVA_HOME%\bin