为什么java -version返回与JAVA_HOME中定义的版本不同的版本?


18

我的JAVA_HOME设置为C:\bea\jdk150_10\bin(Java 1.5)。但是,当我运行时,java -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)

如何使用1.5版本?

Answers:



14

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,但是我只能查看设置,而不能对其进行编辑。也许对你有用?


8

修改PATH变量,而不是JAVA_HOME

请参阅Java文档中有关设置或更改PATH变量的信息

  1. 开始->控制面板->系统->高级

  2. 在“系统变量”下,单击“环境变量”,找到PATH,然后单击它。

  3. 在“编辑”窗口中,PATH通过将类的位置添加到的值来进行修改PATH。如果没有该项PATH,则可以选择添加一个新变量,然后将其添加PATH为名称,并将类的位置添加为值。

  4. 关闭窗口。

  5. 重新打开命令提示符窗口,然后运行Java代码。


我也没有在PATH变量上看到对jdk 6的任何引用。仅Java 5 X)
Jeune

这是一个例子,该过程还是一样..
约翰牛逼

4

并非所有的应用程序都使用JAVA_HOMEJDK版本。如前所述,其中一些使用%SystemRoot%\System32\java.exe。您可以%SystemRoot%\java.exe -version查看哪个版本。

我必须添加到其他响应中的是,如果您使用Maven进行构建,M2_HOME\bin则还必须先%SystemRoot%于Maven使用正确的JAVA_HOME版本。


1

JAVA_HOME不应该指向bin!

SET“ JAVA_HOME = C:\ bea \ jdk150_10” SET“ PATH =%JAVA_HOME%/ bin;%PATH%”

还要确保JAVA_HOME的路径正确!如果输入错误,并且路径中有C:\ Windows \ System32 \,则将运行java.exe而不是您指定的java.exe。


0

对我而言,在胜利10上,javac -version显示java7,而java -version显示java8。在命令提示符处执行“ where java”,则在三个位置显示java。我不得不从C:\ Windows \ System32中删除Java,从路径变量中删除“ C:\ ProgramFile \ Oracle \ Java \ javapath”和“ C:\ ProgramData \ Oracle \ Java”条目,仅将Jdk7条目保留在路径变量中经过两个小时的艰苦奋斗。


0

转到环境变量的高级设置,然后编辑路径变量。无论您要使用哪种Java版本,只要将该版本路径移至其他Java版本的所有其他环境变量之上即可。

这里图像java_home环境变量比oracle java环境上移了


-1

尝试这个:

@echo off
DOSKEY WHICH=@for %%E in (%PATHEXT%) do @for %%I in ($*%%E) do @if NOT "%%~$PATH:I"=="" echo %%~$PATH:I
SET "JAVA_HOME=C:\Java\jdk1.6"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
where.exe java
WHICH java
pause

-1

我面临着同样的问题。后来,我发现罪魁祸首是Java8。早期我安装了Java 8,但是现在没有适用于Java 8的文件夹,并且我的JAVA_HOME设置为jre7,但仍然遇到上述问题。

我删除了C:\ ProgramData \ Oracle \ Java中存在的javapath。现在我的系统正常工作。它也解决了我的日食启动问题


-2

我遇到过同样的问题。这样做可以解决问题。

在Windows 8或10上,您需要从环境变量的路径中删除“ C:\ ProgramFile \ Oracle \ Java \ javapath”。

这样可以解决问题。


2
这已经在2年前提出过
Ramhound18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.