Skip to content

Commit 3e662b4

Browse files
committed
Latest updates for jruby.sh
* Check for Java required Java version using .java-version file. * Interpret "1.8" version as "8". * Handle missing release file by assuming Java 8. * Handle missing .java-version file by assuming Java 8 minimum.
1 parent eeebfbf commit 3e662b4

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

exe/jruby.sh

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,21 @@ fi
505505

506506
# ----- Detect Java version and determine available features ------------------
507507
# shellcheck source=/dev/null
508-
java_version=$(. "$JAVA_HOME/release" && echo "${JAVA_VERSION-}")
508+
if [ -f "$JAVA_HOME/release" ]; then
509+
java_version=$(. "$JAVA_HOME/release" && echo "${JAVA_VERSION-}")
510+
if echo "${java_version}" | grep -q "1.8.\\.*"; then
511+
java_version=8
512+
fi
513+
else
514+
java_version=8
515+
fi
516+
# shellcheck source=/dev/null
517+
if [ -f "$JRUBY_HOME/bin/.java-version" ]; then
518+
minimum_java_version=$(. "$JRUBY_HOME/bin/.java-version" && echo "${JRUBY_MINIMUM_JAVA_VERSION-}")
519+
else
520+
# Only 9.4.12.0 and earlier will have shipped without a .java-version file, so fall back on minimum of 8
521+
minimum_java_version=8
522+
fi
509523
add_log "Detected Java version: $java_version"
510524

511525
# Split version out for integer comparisons
@@ -522,6 +536,14 @@ readonly java_has_appcds
522536
# Default to using AppCDS if available
523537
use_jsa_file="$java_has_appcds"
524538

539+
# Present a useful error if running a Java version lower than bin/.java-version
540+
if [ "$java_major" -lt "$minimum_java_version" ]; then
541+
echo "This version of JRuby requires Java ${minimum_java_version}+."
542+
echo "Make sure JAVA_HOME points at JDK ${minimum_java_version} or higher"
543+
echo "Current JAVA_HOME: $JAVA_HOME"
544+
exit 1
545+
fi
546+
525547
# AppCDS autogeneration
526548
if [ "$java_major" -ge 19 ]; then
527549
java_has_appcds_autogenerate=true

0 commit comments

Comments
 (0)