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 $?

Reply via email to