Get the current Java version from a BAT fileTag(s): Environment
This command file queries the registry to find out the path of the current JRE installation and then launch it to display the version found .
[j.cmd Win7 or better version]
@echo off cls setlocal ENABLEEXTENSIONS set KEY_NAME="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" set VALUE_NAME=CurrentVersion :: :: get the current version :: FOR /F "usebackq skip=2 tokens=3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO ( set ValueValue=%%A ) if defined ValueValue ( @echo the current Java runtime is %ValueValue% ) else ( @echo %KEY_NAME%\%VALUE_NAME% not found. goto end ) set JAVA_CURRENT="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\%ValueValue%" set JAVA_HOME=JavaHome :: :: get the javahome :: FOR /F "usebackq skip=2 tokens=3*" %%A IN (`REG QUERY %JAVA_CURRENT% /v %JAVA_HOME% 2^>nul`) DO ( set JAVA_PATH=%%A %%B ) echo the path of the current Java JVM according to the registry is echo %JAVA_PATH% echo. echo now if we try it : "%JAVA_PATH%\bin\java.exe" -version :end
[j.cmd XP version]
@echo off cls setlocal ENABLEEXTENSIONS set KEY_NAME="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" set VALUE_NAME=CurrentVersion :: :: get the current version :: FOR /F "usebackq skip=4 tokens=3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO ( set ValueValue=%%A ) if defined ValueValue ( @echo the current Java runtime is %ValueValue% ) else ( @echo %KEY_NAME%\%VALUE_NAME% not found. goto end ) set JAVA_CURRENT="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\%ValueValue%" set JAVA_HOME=JavaHome :: :: get the javahome :: FOR /F "usebackq skip=4 tokens=3,4" %%A IN (`REG QUERY %JAVA_CURRENT% /v %JAVA_HOME% 2^>nul`) DO ( set JAVA_PATH=%%A %%B ) echo the path of the current Java JVM according to the registry is echo %JAVA_PATH% echo. echo now if we try it : "%JAVA_PATH%\bin\java.exe" -version :end
Output :
>j.cmd the current Java runtime is 1.6 the path of the current Java JVM according to the registry is C:\Program Files\Java\jre1.6.0_06 now if we try it : java version "1.6.0_06" Java(TM) SE Runtime Environment (build 1.6.0_06-b02) Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\...
for
HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment\...