报告了错误的Java -version


17

我正在运行Windows 7 Professional x64,并安装了以下Java版本:

x64

  • C:\ Program Files \ Java
    • jdk1.6.0_24
    • jdk1.7.0_04
    • jdk1.7.0_07
    • jre6
    • jre7

x86

  • C:\ Program Files(x86)\ Java
    • jre1.6.0_07
    • jre6
    • jre7

在我的环境变量中,我有PATH包含C:\Program Files\Java\jdk1.6.0_24\binJAVA_HOME设置为C:\Program Files\Java\jdk1.6.0_24\bin

但是运行java -version报告

java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

当我的环境变量中没有引用此版本的Java时,情况如何?

当我尝试使用Java 1.6 运行Apache ANT时,此问题上的任何帮助都将非常有用

Answers:


27

您可能已将java.exe复制到了系统路径之一(AFAIK是Java安装程序的默认行为)。要检查在运行“ java -version”时实际执行的操作,请从命令行运行:
for %I in (java.exe) do @echo %~$PATH:I它会告诉您它在哪里。


1
哇-太有用了!由于某种原因java.exe在system32中。我将其沿着提到的路径向上移动。
玛拉基2012年

1
同样的问题在这里,java.exe是为system32ProgramData\Oracle\javapath
凯文Labécot

如果您想下一步做什么,可以将exes 重命名。我改名java.exejavaw.exejavaws.exejava-foobar.exejavaw-foobar.exejavaws-foobar.exe分别。
javatarz 2014年

这就增加了我需要检查的地方数量:4,PATH,JAVA_HOME,控制面板以及现在的System32 ...哇。一天,注册表将成为第五名。谢谢你,先生。
JaroslavZáruba'17 May

2

PATH文件夹按照出现的顺序进行检查。尝试将Java路径移到最前面。如果这样可以解决问题,那么您的路径上会有另一个版本。


2

安装公共JRE(由Java插件使用)时,还会在C:\ WINNT \ system32(IIRC)中创建一个java.exe文件。因为C:\ WINNT \ system32在PATH中的JDK / bin目录之前,所以可能是执行此java命令。

将JDK / bin目录放在PATH的开头


0

这将报告正确的Java版本,并且还将提示您问题所在:

@ECHO off
ECHO ---------------
SET "JAVA_HOME=C:\Path to wherever\JDKwhatever"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
java -version
ECHO ---------------
pause

0

我建议您卸载所有JDK和JRE。然后,安装最新的JDK,并更新类路径,JAVA_HOME和路径。这对我有用。


-1

正如我最近发现的那样,请确保您JAVA_HOME在“系统变量”部分而不是“用户变量”部分中进行定义。

我刚%JAVA_HOME%\bin开始PATH时就没用,但无法正常工作-将其添加JAVA_HOME到系统中可以解决此问题。

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.