Подтвердить что ты не робот

Каталог установки JRE в Windows

Есть ли какая-либо команда для проверки активной (поскольку на компьютере может быть установлено более 1 JRE) установочный каталог JRE под Windows. Для linux соответствующая команда

which java

Есть ли какой-либо эквивалент Windows?

4b9b3361

Ответ 1

where java работает для меня, чтобы перечислить все java exe, но java -verbose сообщает вам, какой rt.jar используется и, следовательно, какой jre (полный путь):

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

Изменить: win7 и 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)

Ответ 2

Не как команда, но эта информация находится в реестре:

  • Откройте ключ HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
  • Прочитайте CurrentVersion REG_SZ
  • Откройте подраздел под Java Runtime Environment с именем CurrentVersion значение
  • Прочитайте JavaHome REG_SZ, чтобы получить путь

Например, на моей рабочей станции у меня есть

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"

Итак, моя текущая JRE находится в C:\Program Files\Java\jre6

Ответ 3

Следуя моему другому комментарию, вот командный файл, который отображает текущую JRE или JDK на основе значений реестра.

Он отличается от других решений в случаях, когда java установлен, но не на 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

Ответ 4

Посмотрите ответ на мой предыдущий вопрос здесь

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

Ответ 5

В командной строке вы можете ввести java -version