Answers:
跑
where java
在命令提示符下。
在我的系统上,它打印出一些出乎意料的结果:
C:\Users\Mikel>where java
C:\Windows\System32\java.exe
验证那里确实有Java:
C:\Users\Mikel>c:\windows\system32\java.exe -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
因此,一种解决方案是确保您首选的Java在之前的PATH中C:\Windows\System32
。
我还尝试在Java控制面板中查看它是否管理中的版本C:\Windows\System32
,但是我只能查看设置,而不能对其进行编辑。也许对你有用?
修改PATH
变量,而不是JAVA_HOME
。
请参阅Java文档中有关设置或更改PATH变量的信息。
开始->控制面板->系统->高级
在“系统变量”下,单击“环境变量”,找到
PATH
,然后单击它。在“编辑”窗口中,
PATH
通过将类的位置添加到的值来进行修改PATH
。如果没有该项PATH
,则可以选择添加一个新变量,然后将其添加PATH
为名称,并将类的位置添加为值。关闭窗口。
重新打开命令提示符窗口,然后运行Java代码。
并非所有的应用程序都使用JAVA_HOME
JDK版本。如前所述,其中一些使用%SystemRoot%\System32\java.exe
。您可以%SystemRoot%\java.exe -version
查看哪个版本。
我必须添加到其他响应中的是,如果您使用Maven进行构建,M2_HOME\bin
则还必须先%SystemRoot%
于Maven使用正确的JAVA_HOME
版本。
对我而言,在胜利10上,javac -version显示java7,而java -version显示java8。在命令提示符处执行“ where java”,则在三个位置显示java。我不得不从C:\ Windows \ System32中删除Java,从路径变量中删除“ C:\ ProgramFile \ Oracle \ Java \ javapath”和“ C:\ ProgramData \ Oracle \ Java”条目,仅将Jdk7条目保留在路径变量中经过两个小时的艰苦奋斗。
我遇到过同样的问题。这样做可以解决问题。
在Windows 8或10上,您需要从环境变量的路径中删除“ C:\ ProgramFile \ Oracle \ Java \ javapath”。
这样可以解决问题。