Quickly retrieve available Java JVM on a workstation (Windows)Tag(s): Environment
Using regedit
Use regedit utility to query the Windows registry, the result is written into a file.start /w regedit /e jre.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"
The content of jre.txt on my machine :
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] "CurrentVersion"="1.5" [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.4] "JavaHome"="C:\\Program Files\\Java\\j2re1.4.1_02" "RuntimeLib"="C:\\Program Files\\Java\\j2re1.4.1_02\\bin\\client\\jvm.dll" "MicroVersion"="1" [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.4.1_02] "JavaHome"="C:\\Program Files\\Java\\j2re1.4.1_02" "MicroVersion"="1" "RuntimeLib"="C:\\Program Files\\Java\\j2re1.4.1_02\\bin\\client\\jvm.dll" [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5] "JavaHome"="C:\\Program Files\\Java\\jre1.5.0" "RuntimeLib"="C:\\Program Files\\Java\\jre1.5.0\\bin\\client\\jvm.dll" "MicroVersion"="0" [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5.0] "JavaHome"="C:\\Program Files\\Java\\jre1.5.0" "MicroVersion"="0" "RuntimeLib"="C:\\Program Files\\Java\\jre1.5.0\\bin\\client\\jvm.dll"
Using a CMD file
A CMD file for Windows to display the default JRE used :@echo off ::Find the current (most recent) Java version start /w regedit /e reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" type reg1.txt | find "CurrentVersion" > reg2.txt if errorlevel 1 goto ERROR for /f "tokens=2 delims==" %%x in (reg2.txt) do set JavaTemp=%%~x if errorlevel 1 goto ERROR echo Java Version = %JavaTemp% del reg1.txt del reg2.txt ::Get the home directory of the most recent Java start /w regedit /e reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%JavaTemp%" type reg1.txt | find "JavaHome" > reg2.txt if errorlevel 1 goto ERROR for /f "tokens=2 delims==" %%x in (reg2.txt) do set JavaTemp=%%~x if errorlevel 1 goto ERROR echo Java home path (per registry) = %JavaTemp% del reg1.txt del reg2.txt pause
C:\temp>findjava.cmd Java Version = 1.6 Java home path (per registry) = C:\\applications\\dev\\jre6
Note :
The above script returns the default JVM if the PATH variable does not override it!
Oracle client installation is famous to force an outdated Java at the beginning of the PATH.
This one-liner displays the java.exe (if any) found in the PATH :
c:\> for %i in (java.exe) do @echo. %~$PATH:i C:\WINDOWS\system32\java.exe
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com