Se ha informado una versión incorrecta de Java

17

Estoy ejecutando Windows 7 Professional x64 y tengo instaladas las siguientes versiones de Java:

x64

  • C: \ Archivos de programa \ Java
    • jdk1.6.0_24
    • jdk1.7.0_04
    • jdk1.7.0_07
    • jre6
    • jre7

x86

  • C: \ Archivos de programa (x86) \ Java
    • jre1.6.0_07
    • jre6
    • jre7

en mis variables de entorno tengo mi PATHcontenido C:\Program Files\Java\jdk1.6.0_24\biny JAVA_HOMEestablecido enC:\Program Files\Java\jdk1.6.0_24\bin

Sin embargo, ejecutando java -versioninformes

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)

¿Cómo es este el caso cuando no hay referencia a esta versión de Java en mis variables de entorno?

Cualquier ayuda sobre este tema sería excelente ya que estoy tratando de ejecutar Apache ANT usando Java 1.6.

Malaquías
fuente

Respuestas:

27

Probablemente haya copiado java.exe en una de las rutas del sistema (AFAIK es el comportamiento predeterminado del instalador de Java). Para verificar qué se ejecuta realmente cuando ejecuta 'java -version', ejecute desde la línea de comandos:
for %I in (java.exe) do @echo %~$PATH:Iy le dirá dónde está.

wmz
fuente
1
Wow, eso es muy útil! Por alguna razón java.exeestá en system32. Lo moveré por el camino como se mencionó.
Malaquías
1
El mismo problema aquí, java.exeestaba en system32YProgramData\Oracle\javapath
Kevin Labécot
Si se pregunta qué hacer a continuación, puede cambiar el nombre del exes. Cambié el nombre java.exe, javaw.exey javaws.exea java-foobar.exe, javaw-foobar.exey javaws-foobar.exerespectivamente.
javatarz
Eso aumenta el número de lugares que necesito verificar a 4: RUTA, JAVA_HOME, Paneles de control y ahora también System32 ... Simplemente wow. Un día el registro se convertirá en 5to. Y a usted se lo agradezco señor.
Jaroslav Záruba
2

Las carpetas PATH se verifican en el orden en que aparecen. Intenta mover el camino de Java hacia el frente. Si eso soluciona el problema, entonces tiene otra versión en algún lugar de su camino.

Chris Nava
fuente
2

Al instalar un JRE público (utilizado por el complemento de Java), también se crea un archivo java.exe en C: \ WINNT \ system32 (IIRC). Probablemente se ejecute este comando de Java, ya que C: \ WINNT \ system32 viene antes del directorio JDK / bin en su RUTA.

Ponga el directorio JDK / bin al comienzo de la RUTA

Pyuri Sahu
fuente
0

Esto informará la versión correcta de Java y también le dará una idea de cuál es el problema:

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

Le sugiero que desinstale todos los JDK y JRE. Luego, instala el último JDK y actualiza su classpath, JAVA_HOME y su ruta. Esto funcionó para mí.

Abderrahmen
fuente
-1

Como descubrí recientemente, asegúrese de definir JAVA_HOMEen la sección "Variables del sistema" y no en la sección "Variables de usuario".

Al %JAVA_HOME%\binprincipio PATHlo tenía, pero no funcionaba: agregar JAVA_HOMEal sistema corrigió el problema.

Pablo
fuente