add JVM compatibility flags to run scripts, document all flags

This commit is contained in:
rdk
2026-02-11 15:27:39 +01:00
parent e9f530ce37
commit 652442a8d2
3 changed files with 35 additions and 19 deletions

View File

@@ -113,10 +113,14 @@ test {
maxHeapSize = "2g"
// JVM flags for test compatibility with Java 17+
jvmArgs '--add-opens=java.base/java.nio=ALL-UNNAMED', // Apache Arrow memory access
'--enable-native-access=ALL-UNNAMED' // zstd-jni native loading
// --add-opens: required by Apache Arrow and Netty for direct memory access via sun.misc.Unsafe
// --enable-native-access: required by zstd-jni for native library loading
jvmArgs '--add-opens=java.base/java.nio=ALL-UNNAMED',
'--enable-native-access=ALL-UNNAMED'
// --sun-misc-unsafe-memory-access: suppresses warnings from parquet-hadoop CleanUtil
// which uses sun.misc.Unsafe (upstream unfixed). Only available in Java 23+.
if (JavaVersion.current() >= JavaVersion.VERSION_23) {
jvmArgs '--sun-misc-unsafe-memory-access=allow' // parquet-hadoop CleanUtil (upstream unfixed)
jvmArgs '--sun-misc-unsafe-memory-access=allow'
}
inputs.dir "$distroDir/test_data"

View File

@@ -5,13 +5,6 @@
#
export JAVA_OPTS="$JAVA_OPTS -Xmx2048m"
#
# Required for Apache Arrow memory access on Java 17+
#
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.nio=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED"
#
# Set this to change the Java installation that will be used to run the program:
#
@@ -38,5 +31,19 @@ else
JAVACMD="java"
fi
# JVM flags for compatibility with Java 17+
# --add-opens: required by Apache Arrow and Netty for direct memory access via sun.misc.Unsafe
# --enable-native-access: required by zstd-jni for native library loading
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.nio=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --enable-native-access=ALL-UNNAMED"
# --sun-misc-unsafe-memory-access: suppresses warnings from parquet-hadoop CleanUtil
# which uses sun.misc.Unsafe (upstream unfixed). Only available in Java 23+.
JAVA_MAJOR_VERSION=$("$JAVACMD" -version 2>&1 | head -1 | sed 's/.*"\([0-9]*\).*/\1/')
if [ "$JAVA_MAJOR_VERSION" -ge 23 ] 2>/dev/null; then
export JAVA_OPTS="$JAVA_OPTS --sun-misc-unsafe-memory-access=allow"
fi
"$JAVACMD" $JAVA_OPTS -cp "${CLASSPATH}" cz.siret.prank.program.Main "$@"

View File

@@ -16,12 +16,6 @@
export JAVA_OPTS="$JAVA_OPTS"
export JAVA_OPTS="$JAVA_OPTS $JAVA_LOCALENV_PARAMS"
# Required for Apache Arrow memory access on Java 17+
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.nio=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED"
THIS_SCRIPT_DIR_REL_PATH="$( dirname "${BASH_SOURCE[0]}" )"
export POCKET_RANK_BASE_DIR="$THIS_SCRIPT_DIR_REL_PATH/distro"
@@ -41,13 +35,24 @@ else
JAVACMD="java"
fi
# JVM flags for compatibility with Java 17+
# --add-opens: required by Apache Arrow and Netty for direct memory access via sun.misc.Unsafe
# --enable-native-access: required by zstd-jni for native library loading
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.nio=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED"
export JAVA_OPTS="$JAVA_OPTS --enable-native-access=ALL-UNNAMED"
# --sun-misc-unsafe-memory-access: suppresses warnings from parquet-hadoop CleanUtil
# which uses sun.misc.Unsafe (upstream unfixed). Only available in Java 23+.
JAVA_MAJOR_VERSION=$("$JAVACMD" -version 2>&1 | head -1 | sed 's/.*"\([0-9]*\).*/\1/')
if [ "$JAVA_MAJOR_VERSION" -ge 23 ] 2>/dev/null; then
export JAVA_OPTS="$JAVA_OPTS --sun-misc-unsafe-memory-access=allow"
fi
PARAMS="$PRANK_LOCALENV_PARAMS"
#CMD="$JAVACMD $JAVA_OPTS -cp ${CLASSPATH} cz.siret.prank.program.Main ${PARAMS} $@"
#echo "+" $CMD
"$JAVACMD" $JAVA_OPTS -cp "${CLASSPATH}" cz.siret.prank.program.Main ${PARAMS} "$@"