Files
javademos/migration-17-25/scripts/flags.sh
T

15 lines
906 B
Bash
Executable File

#!/usr/bin/env bash
# Which JVM options from Java 17-era startup scripts still work? Runs `java <flag> -version` on both JDKs; records exit code and first warning/error line.
J17=${JDK17:-/tmp/tools/j17}; J25=${JDK25:-/tmp/tools/jdk-25.0.4.1+1}
echo "# flag | JDK 17 | JDK 25 (exit code: first warning or error line)"
for f in -Djava.security.manager=allow -XX:+UseBiasedLocking -XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -XX:MaxPermSize=128m -XX:+UseParallelOldGC -Xverify:none -XX:-UseCompressedClassPointers -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication; do
line="$f |"
for j in "$J17" "$J25"; do
all=$("$j/bin/java" $f -version 2>&1); rc=$?
msg=$(echo "$all" | grep -E 'Unrecognized|warning|Error' | head -1 | sed 's/^OpenJDK 64-Bit Server VM warning: //' | cut -c1-120)
[ -z "$msg" ] && msg="(no message)"
line="$line exit $rc: $msg |"
done
echo "${line% |}"
done