#!/usr/bin/env bash # Which JVM options from Java 17-era startup scripts still work? Runs `java -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