一般如果安装一切正常的话应该会出现相应的版本信息,不过有时候会出现不正常的情况。原因是你之前安装的java比你安装的jdk的版本低,就会出现这样的情况:
Registry key 'Software/JavaSoft/Java Runtime Environment/CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.
(根据你使用的版本,上面的1.8和1.7之类的数字可能会有些不一样,但是处理方法应该是大同小异的)网上最简单的方法就是,卸载掉你装的java或者jdk,然后找一个相对比较低的版本与之适配,然后就可以了。jdk是个很蛋疼的东西,版本太高反而不好用。
好了,下面说一下在网上摸索到的,不用重装或者卸载的方法,那就是通过修改注册表的方式让自己的那个高版本的jdk或者java的版本变低一些,这样就可以适应了。
我们打开注册表,然后找到这个路径:
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment
以我自己的为例,我的CurrentVersion是1.8,而Java7FamilyVersion却是1.7.0_67,我把两个都改成1.8之后保存。
注意:重新在cmd里输入一次java -version
得到的就是:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode)
为什么会这样呢?
遇到这个问题,我们需要清楚一个事情,在cmd下运行java命令时,系统首先会去windows的System32文件夹下去找java.exe如果找到就运行,这里其实和注册表也是有关系的,(我的注册表写的是1.8但是system32下面还是1.7的java.exe,然后它提示注册表那里有问题,);然后再根据配置的java环境变量去找,找到即运行。如果经过这2步还没找到就会提示最常见的一个错误提示:xxxx 不是内部或外部命令,也不是可运行的程序或批处理文件。这时候应该看看这两个地方,一般是path的问题。
在这个问题的背后,我们需要知道的是,我们的path设置的JDK路径到底有什么用,我们配置的是运行环境,而实际上编译的时候会走system32下面的java.exe去编译,系统默认的是走system32下面的东西。