Error: could not open `C:\Java\jre7\lib\amd64\jvm.cfg'
JAVA_HOME的环境变量值根本不是这个目录,到CMD命令窗口下,用echo %JAVA_HOME%,也显示正常,但是java -version时,显示java的home目录仍然是C:\Java\jre7,"百撕不得妻姐"之后,去问了度娘,原来JDK如果执行过安装程序后,会在
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7.0_45\MSI\ 留下印记,里面有一项INSTALLDIR记录的还是当时安装的旧路径,如下图:
为了清净,直接把HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\这个注册表分支给删除了,然后到cmd下,运行java -version,又出现另一个错误:
C:\Users\jimmy.yang>java -version
Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
网上搜索了下,很快找到了答案:
是因为文件夹“%SystemRoot%\system32”下面可能有多余的“java.exe”和“javaw.exe”文件,把它们删掉,配置正确JAVA_HOME、PATH,搞定!
我的电脑是这样产生的:
由于我是64位win7,所以我先选择64位的jdk1.8,安装完成后发现没有安装jar,所以算安装失败。
接着我重新安装32位的jdk1.7,dk1.8,jdk1.6,任何一个安装完成后都不能使用(安装正常,有jar)。
最后,我就找到上面提到的放错位置的两个文件,删除后解决问题啦!