batch.scripts icon indicating copy to clipboard operation
batch.scripts copied to clipboard

Fix Suggestion

Open sebetci opened this issue 2 years ago • 0 comments

When the javaDetect.bat script is run after a new CMD session is opened, the following error occurs:

Environment variable JAVA_VERSION not defined

To fix this error, the comment lines assigning to the JAVA_VERSION variable have been removed.

Click to see the code.

@ECHO OFF

SET __COMPAT_LAYER=RunAsInvoker 
:: Export java settings from registry to a temporary file
START /W REGEDIT /E %Temp%\java.reg "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft" 

IF NOT EXIST "%Temp%\java.reg" (
    START /W REGEDIT /E %Temp%\java.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft"
)

IF NOT EXIST "%Temp%\java.reg" (
    ECHO Java NOT installed 
    EXIT /b 1
)

:: Find java location
FOR /F "tokens=1* delims==" %%A IN ('TYPE %Temp%\java.reg ^| FIND "INSTALLDIR"') DO SET JAVA_HOME=%%B
SET JAVA_HOME=%JAVA_HOME:"=%
SET JAVA_HOME=%JAVA_HOME:\\=\%
SET JAVA_HOME
 
:: Get java version
FOR /F "tokens=1* delims==" %%A IN ('TYPE %Temp%\java.reg ^| FIND "CurrentVersion"') DO SET JAVA_VERSION=%%B
SET JAVA_VERSION=%JAVA_VERSION:"=%
SET JAVA_VERSION
SET JAVA_VERSION=%JAVA_VERSION:.=%
SET JAVA_VERSION=%JAVA_VERSION:_=%
SET /A JAVA_VERSION=%JAVA_VERSION%

FOR /f tokens^=2-5^ delims^=.-_^" %%j in ('%JAVA_HOME%\bin\java.exe -fullversion 2^>^&1') do set "JAVA_VERSION=%%j%%k%%l%%m"
 
:: Delete temporary file
DEL %Temp%\java.reg /S /Q > NUL 2>&1
set JAVA_VERSION

:: Check java version compatibility
IF %JAVA_VERSION% LSS 16020 (
    ECHO.
    ECHO YOU NEED AT LEAST JAVA WITH VERSION 1.6.0_20 -- this is just an example echo.
    GOTO :EOF
)
 
PAUSE

sebetci avatar May 18 '22 17:05 sebetci