diff --git a/hugegraph-pd/hg-pd-dist/src/assembly/static/bin/start-hugegraph-pd.sh b/hugegraph-pd/hg-pd-dist/src/assembly/static/bin/start-hugegraph-pd.sh index b5d5346f34..2b0ea0ec7e 100644 --- a/hugegraph-pd/hg-pd-dist/src/assembly/static/bin/start-hugegraph-pd.sh +++ b/hugegraph-pd/hg-pd-dist/src/assembly/static/bin/start-hugegraph-pd.sh @@ -78,8 +78,17 @@ else fi # check jdk version -JAVA_VERSION=$($JAVA -version 2>&1 | awk 'NR==1{gsub(/"/,""); print $3}' | awk -F'_' '{print $1}') -if [[ $? -ne 0 || $JAVA_VERSION < $EXPECT_JDK_VERSION ]]; then +EXPECT_JDK_VERSION=11 + +# Extract and check Java version +JAVA_VERSION=$($JAVA -version 2>&1 | head -n1 | sed -n 's/.*version "\([0-9]*\)\..*/\1/p') + +if [[ "$JAVA_VERSION" != "$EXPECT_JDK_VERSION" ]]; then + echo "Expected Java ${EXPECT_JDK_VERSION}, but found Java ${JAVA_VERSION} ✗" >> ${OUTPUT} +fi + + +if [[ $? -ne 0 || $MAJOR_VERSION -lt $EXPECT_JDK_VERSION ]]; then echo "Please make sure that the JDK is installed and the version >= $EXPECT_JDK_VERSION" >> ${OUTPUT} exit 1 fi diff --git a/hugegraph-server/hugegraph-dist/src/assembly/static/bin/init-store.sh b/hugegraph-server/hugegraph-dist/src/assembly/static/bin/init-store.sh index cde2cff742..6a33cb0aee 100755 --- a/hugegraph-server/hugegraph-dist/src/assembly/static/bin/init-store.sh +++ b/hugegraph-server/hugegraph-dist/src/assembly/static/bin/init-store.sh @@ -25,6 +25,7 @@ function abs_path() { cd -P "$(dirname "$SOURCE")" && pwd } +REQUIRED_JAVA_VERSION="11" BIN=$(abs_path) TOP="$(cd "${BIN}"/../ && pwd)" CONF="$TOP/conf" @@ -47,9 +48,20 @@ cd "${TOP}" || exit DEFAULT_JAVA_OPTIONS="" JAVA_VERSION=$($JAVA -version 2>&1 | awk 'NR==1{gsub(/"/,""); print $3}' | awk -F'_' '{print $1}') -# TODO: better not string number compare, use `bc` like github.com/koalaman/shellcheck/wiki/SC2072 -if [[ $? -eq 0 && $JAVA_VERSION > "1.9" ]]; then - DEFAULT_JAVA_OPTIONS="--add-exports=java.base/jdk.internal.reflect=ALL-UNNAMED" + +# Extract the major version number for numerical comparison +if [[ $JAVA_VERSION == 1.* ]]; then + MAJOR_VERSION=$(echo $JAVA_VERSION | cut -d'.' -f2) +else + MAJOR_VERSION=$(echo $JAVA_VERSION | cut -d'.' -f1) +fi + +# Compare with the required Java version +if [[ $? -eq 0 && $MAJOR_VERSION -ge $REQUIRED_JAVA_VERSION ]]; then + DEFAULT_JAVA_OPTIONS="--add-exports=java.base/jdk.internal.reflect=ALL-UNNAMED" +else + echo "Error: This application requires Java version $REQUIRED_JAVA_VERSION or higher." + exit 1 fi echo "Initializing HugeGraph Store..." diff --git a/hugegraph-store/hg-store-dist/src/assembly/static/bin/start-hugegraph-store.sh b/hugegraph-store/hg-store-dist/src/assembly/static/bin/start-hugegraph-store.sh index d8b965a07d..291b1e4e33 100644 --- a/hugegraph-store/hg-store-dist/src/assembly/static/bin/start-hugegraph-store.sh +++ b/hugegraph-store/hg-store-dist/src/assembly/static/bin/start-hugegraph-store.sh @@ -129,11 +129,13 @@ else JAVA="$JAVA_HOME/bin/java" fi -# check jdk version -JAVA_VERSION=$($JAVA -version 2>&1 | awk 'NR==1{gsub(/"/,""); print $3}' | awk -F'_' '{print $1}') -if [[ $? -ne 0 || $JAVA_VERSION < $EXPECT_JDK_VERSION ]]; then - echo "Please make sure that the JDK is installed and the version >= $EXPECT_JDK_VERSION" >> ${OUTPUT} - exit 1 +EXPECT_JDK_VERSION=11 + +# Extract and check Java version +JAVA_VERSION=$($JAVA -version 2>&1 | head -n1 | sed -n 's/.*version "\([0-9]*\)\..*/\1/p') + +if [[ "$JAVA_VERSION" != "$EXPECT_JDK_VERSION" ]]; then + echo "Expected Java ${EXPECT_JDK_VERSION}, but found Java ${JAVA_VERSION} ✗" >> ${OUTPUT} fi # Set Java options