Есть ли какая-либо команда для проверки активной (поскольку на компьютере может быть установлено более 1 JRE) установочный каталог JRE под Windows. Для linux соответствующая команда
which java
Есть ли какой-либо эквивалент Windows?
Есть ли какая-либо команда для проверки активной (поскольку на компьютере может быть установлено более 1 JRE) установочный каталог JRE под Windows. Для linux соответствующая команда
which java
Есть ли какой-либо эквивалент Windows?
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)
Не как команда, но эта информация находится в реестре:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
CurrentVersion
REG_SZJava 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
Следуя моему другому комментарию, вот командный файл, который отображает текущую 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
Посмотрите ответ на мой предыдущий вопрос здесь
c:\> for %i in (java.exe) do @echo. %~$PATH:i
C:\WINDOWS\system32\java.exe
В командной строке вы можете ввести java -version