This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 6700c84cd0d fix(start-cli):add add-opens script (#11353)
6700c84cd0d is described below
commit 6700c84cd0d08f35492fdd160ac9490574e89bbf
Author: CritasWang <[email protected]>
AuthorDate: Thu Oct 19 05:02:00 2023 -0500
fix(start-cli):add add-opens script (#11353)
---
.../cli/src/assembly/resources/sbin/start-cli.bat | 26 +++++++++++++++++++++-
.../cli/src/assembly/resources/sbin/start-cli.sh | 22 +++++++++++++++++-
2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat
b/iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat
index 56d66b39136..2e73a33a038 100644
--- a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat
+++ b/iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat
@@ -23,6 +23,23 @@
@REM set JAVA_HOME=%JAVA_HOME%
set PATH="%JAVA_HOME%\bin\";%PATH%
+set "FULL_VERSION="
+set "MAJOR_VERSION="
+set "MINOR_VERSION="
+
+
+for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java -fullversion 2^>^&1') do (
+ set "FULL_VERSION=%%j-%%k-%%l-%%m"
+ IF "%%j" == "1" (
+ set "MAJOR_VERSION=%%k"
+ set "MINOR_VERSION=%%l"
+ ) else (
+ set "MAJOR_VERSION=%%j"
+ set "MINOR_VERSION=%%k"
+ )
+)
+
+set JAVA_VERSION=%MAJOR_VERSION%
if "%OS%" == "Windows_NT" setlocal
@@ -68,7 +85,14 @@ echo %PARAMETERS% | findstr /c:"-h ">nul && (set
PARAMETERS=%PARAMETERS%) || (se
echo %PARAMETERS%
-java %JAVA_OPTS% -cp %CLASSPATH% %MAIN_CLASS% %PARAMETERS%
+@REM Add args for Java 11 and above, due to [JEP 396: Strongly Encapsulate JDK
Internals by Default] (https://openjdk.java.net/jeps/396)
+IF "%JAVA_VERSION%" == "8" (
+ set ILLEGAL_ACCESS_PARAMS=
+) ELSE (
+ set ILLEGAL_ACCESS_PARAMS=--add-opens=java.base/java.lang=ALL-UNNAMED
+)
+
+java %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% -cp %CLASSPATH% %MAIN_CLASS%
%PARAMETERS%
set ret_code=%ERRORLEVEL%
goto finally
diff --git a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.sh
b/iotdb-client/cli/src/assembly/resources/sbin/start-cli.sh
index fd92cb15fbb..f6a91db3565 100755
--- a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.sh
+++ b/iotdb-client/cli/src/assembly/resources/sbin/start-cli.sh
@@ -126,8 +126,28 @@ else
JAVA=java
fi
+# Determine the sort of JVM we'll be running on.
+java_ver_output=`"$JAVA" -version 2>&1`
+jvmver=`echo "$java_ver_output" | grep '[openjdk|java] version' | awk -F'"'
'NR==1 {print $2}' | cut -d\- -f1`
+JVM_VERSION=${jvmver%_*}
+
+version_arr=(${JVM_VERSION//./ })
+
+illegal_access_params=""
+#GC log path has to be defined here because it needs to access IOTDB_HOME
+if [ "${version_arr[0]}" = "1" ] ; then
+ # Java 8
+ MAJOR_VERSION=${version_arr[1]}
+else
+ #JDK 11 and others
+ MAJOR_VERSION=${version_arr[0]}
+ # Add argLine for Java 11 and above, due to [JEP 396: Strongly Encapsulate
JDK Internals by Default] (https://openjdk.java.net/jeps/396)
+ illegal_access_params="$illegal_access_params
--add-opens=java.base/java.lang=ALL-UNNAMED"
+fi
+
+
set -o noglob
iotdb_cli_params="-Dlogback.configurationFile=${IOTDB_CLI_CONF}/logback-cli.xml"
-exec "$JAVA" $iotdb_cli_params -cp "$CLASSPATH" "$MAIN_CLASS" $PARAMETERS
+exec "$JAVA" $iotdb_cli_params $illegal_access_params -cp "$CLASSPATH"
"$MAIN_CLASS" $PARAMETERS
exit $?