[Backport 7.17]Fix Logstash cli tools to use the selected JDK under Windows (#13839) (#13863)

* Fix Logstash cli tools to use the selected JDK under Windows (#13839)

Some Logstash tools invokes directly the JRuby intepreter. The interpreter uses the JVM pointed by two environment variables:
- JAVACMD
- JAVA_HOME\bin\java.exe

The setup.bat script exported the selected JVM under the env var named JAVA, which isn't recognized by vendored jruby.
This commit fixes it renaming to JAVACMD.

(cherry picked from commit 0084492494)

* Fixed the case for JAVA_HOME selection path
This commit is contained in:
Andrea Selva 2022-03-07 17:22:10 +01:00 committed by GitHub
parent 6fe6bc1054
commit a7893d8bb6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 14 deletions

View file

@ -4,7 +4,7 @@ setlocal enabledelayedexpansion
cd /d "%~dp0.."
for /f %%i in ('cd') do set RESULT=%%i
java -cp "!!RESULT!!\tools\benchmark-cli\build\libs\benchmark-cli.jar;*" ^
%JAVACMD% -cp "!!RESULT!!\tools\benchmark-cli\build\libs\benchmark-cli.jar;*" ^
org.logstash.benchmark.cli.Main %*
endlocal

View file

@ -4,7 +4,7 @@ setlocal enabledelayedexpansion
cd /d "%~dp0\.."
for /f %%i in ('cd') do set RESULT=%%i
java -cp "!!RESULT!!\tools\ingest-converter\build\libs\ingest-converter.jar;*" ^
%JAVACMD% -cp "!!RESULT!!\tools\ingest-converter\build\libs\ingest-converter.jar;*" ^
org.logstash.ingest.Pipeline %*
endlocal

View file

@ -38,7 +38,7 @@ for %%i in ("%LS_HOME%\logstash-core\lib\jars\*.jar") do (
)
@setlocal
for /F "usebackq delims=" %%a in (`CALL %JAVA% -cp "!CLASSPATH!" "org.logstash.launchers.JvmOptionsParser" "!LS_HOME!" "!LS_JVM_OPTS!" ^|^| echo jvm_options_parser_failed`) do set LS_JAVA_OPTS=%%a
for /F "usebackq delims=" %%a in (`CALL %JAVACMD% -cp "!CLASSPATH!" "org.logstash.launchers.JvmOptionsParser" "!LS_HOME!" "!LS_JVM_OPTS!" ^|^| echo jvm_options_parser_failed`) do set LS_JAVA_OPTS=%%a
@endlocal & set "MAYBE_JVM_OPTIONS_PARSER_FAILED=%LS_JAVA_OPTS%" & set LS_JAVA_OPTS=%LS_JAVA_OPTS%
if "%MAYBE_JVM_OPTIONS_PARSER_FAILED%" == "jvm_options_parser_failed" (
@ -47,7 +47,7 @@ if "%MAYBE_JVM_OPTIONS_PARSER_FAILED%" == "jvm_options_parser_failed" (
)
set JAVA_OPTS=%LS_JAVA_OPTS%
%JAVA% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.Logstash %*
%JAVACMD% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.Logstash %*
goto :end

View file

@ -16,7 +16,7 @@ for %%i in ("%LS_HOME%\logstash-core\lib\jars\*.jar") do (
call :concat "%%i"
)
%JAVA% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.ackedqueue.PqCheck %*
%JAVACMD% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.ackedqueue.PqCheck %*
:concat
IF not defined CLASSPATH (

View file

@ -16,7 +16,7 @@ for %%i in ("%LS_HOME%\logstash-core\lib\jars\*.jar") do (
call :concat "%%i"
)
%JAVA% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.ackedqueue.PqRepair %*
%JAVACMD% %JAVA_OPTS% -cp "%CLASSPATH%" org.logstash.ackedqueue.PqRepair %*
:concat
IF not defined CLASSPATH (

View file

@ -21,13 +21,13 @@ for %%I in ("%LS_HOME%..") do set LS_HOME=%%~dpfI
rem ### 2: set java
if defined LS_JAVA_HOME (
set JAVA="%LS_JAVA_HOME%\bin\java.exe"
set JAVACMD=%LS_JAVA_HOME%\bin\java.exe
echo Using LS_JAVA_HOME defined java: %LS_JAVA_HOME%
if exist "%LS_HOME%\jdk" (
echo WARNING: Using LS_JAVA_HOME while Logstash distribution comes with a bundled JDK.
)
) else if defined JAVA_HOME (
set JAVA="%JAVA_HOME%\bin\java.exe"
set JAVACMD="%JAVA_HOME%\bin\java.exe"
echo Using JAVA_HOME defined java: %JAVA_HOME%
if exist "%LS_HOME%\jdk" (
echo WARNING: Using JAVA_HOME while Logstash distribution comes with a bundled JDK.
@ -35,15 +35,15 @@ if defined LS_JAVA_HOME (
echo DEPRECATION: The use of JAVA_HOME is now deprecated and will be removed starting from 8.0. Please configure LS_JAVA_HOME instead.
) else (
if exist "%LS_HOME%\jdk" (
set JAVA="%LS_HOME%\jdk\bin\java.exe"
echo "Using bundled JDK: %JAVA%."
set JAVACMD=%LS_HOME%\jdk\bin\java.exe
echo "Using bundled JDK: !JAVACMD!"
) else (
for %%I in (java.exe) do set JAVA="%%~$PATH:I"
echo "Using system java: %JAVA% ."
for %%I in (java.exe) do set JAVACMD="%%~$PATH:I"
echo "Using system java: !JAVACMD!"
)
)
if not exist %JAVA% (
if not exist %JAVACMD% (
echo could not find java; set JAVA_HOME or ensure java is in PATH 1>&2
exit /b 1
)
@ -69,4 +69,4 @@ if not exist %JRUBY_BIN% (
exit /b 1
)
set RUBYLIB=%LS_HOME%\lib
set RUBYLIB=%LS_HOME%\lib