2010-10-14 28 views
21

¿Hay algún comando para verificar el activo (ya que la máquina puede tener más de 1 JRE instalado) el directorio de instalación de JRE en Windows. Para linux, el comando correspondiente esJRE directorio de instalación en Windows

which java 

¿Hay algún equivalente de Windows?

Respuesta

25

where java obras para mí a la lista todos los exe java, pero java -verbose le dice qué rt.jar se utiliza y, por tanto, que jre (ruta completa):

[Opened C:\Program Files\Java\jre6\lib\rt.jar] 
... 

Editar : Win7 y java:

java version "1.6.0_20" 
Java(TM) SE Runtime Environment (build 1.6.0_20-b02) 
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode) 
+0

donde java no funcionó en Windows. java -verbose hizo el truco como dijiste. Gracias. – Ankur

+0

Cuando hago java -verbose no consigo ver el camino. ¿Qué versión de Java, Winbdows estás probando? – Nivas

+2

@RC: donde java solo funcionará con Win7/Win2008, reconozco. –

-1

En la línea de comandos puede escribir java -version

+2

-1 no da ninguna información de la ruta –

+1

Si Java está instalado y se establecen las variables de entorno, ¿necesita camino? – Ram

4

Mira la respuesta a mi pregunta anterior here

c:\> for %i in (java.exe) do @echo. %~$PATH:i 
C:\WINDOWS\system32\java.exe 
21
No

como un comando, pero esta información se encuentra en el registro:

  • Abrir la llave HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
  • Leer el CurrentVersion REG_SZ
  • Abra la subclave bajo Java Runtime Environment nombrada con el CurrentVersion valor
  • Lea el JavaHome REG_SZ para obtener la ruta

Por ejemplo en mi estación de trabajo que tengo

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment 
    CurrentVersion = "1.6" 
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5 
    JavaHome = "C:\Program Files\Java\jre1.5.0_20" 
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6 
    JavaHome = "C:\Program Files\Java\jre6" 

Así que mi JRE actual es en C:\Program Files\Java\jre6

6

A raíz de mi otro comentario, aquí hay un archivo por lotes que muestra el JRE actual o JDK basa en los valores de registro.

Es diferente de las otras soluciones en instancias donde java está instalado, pero no en el PATH.

@ECHO off 

SET KIT=JavaSoft\Java Runtime Environment 
call:ReadRegValue VER "HKLM\Software\%KIT%" "CurrentVersion" 
IF "%VER%" NEQ "" GOTO FoundJRE 

SET KIT=Wow6432Node\JavaSoft\Java Runtime Environment 
call:ReadRegValue VER "HKLM\Software\%KIT%" "CurrentVersion" 
IF "%VER%" NEQ "" GOTO FoundJRE 

SET KIT=JavaSoft\Java Development Kit 
call:ReadRegValue VER "HKLM\Software\%KIT%" "CurrentVersion" 
IF "%VER%" NEQ "" GOTO FoundJRE 

SET KIT=Wow6432Node\JavaSoft\Java Development Kit 
call:ReadRegValue VER "HKLM\Software\%KIT%" "CurrentVersion" 
IF "%VER%" NEQ "" GOTO FoundJRE 

ECHO Failed to find Java 
GOTO :EOF 

:FoundJRE 
call:ReadRegValue JAVAPATH "HKLM\Software\%KIT%\%VER%" "JavaHome" 
ECHO %JAVAPATH% 
GOTO :EOF 

:ReadRegValue 
SET key=%2% 
SET name=%3% 
SET "%~1=" 
SET reg=reg 
IF DEFINED ProgramFiles(x86) (
    IF EXIST %WINDIR%\sysnative\reg.exe SET reg=%WINDIR%\sysnative\reg.exe 
) 
FOR /F "usebackq tokens=3* skip=1" %%A IN (`%reg% QUERY %key% /v %name% 2^>NUL`) DO SET "%~1=%%A %%B" 
GOTO :EOF 
Cuestiones relacionadas