507507# shellcheck source=/dev/null
508508if [ -f " $JAVA_HOME /release" ]; then
509509 java_version=$( . " $JAVA_HOME /release" && echo " ${JAVA_VERSION-} " )
510- if echo " ${java_version} " | grep -q " 1.8.\\ .*" ; then
511- java_version=8
512- fi
510+
511+ # convert version to major, considering 1.8 as 8
512+ case $java_version in
513+ 1.8 | 1.8.* ) java_major=8 ;;
514+ * ) java_major=${java_version%% .* } ;;
515+ esac
513516else
514- java_version=8
517+ # assume Java 8 if no release file
518+ java_version=1.8
519+ java_major=8
515520fi
521+
516522# 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-} " )
523+ if [ -f " $JRUBY_HOME /bin/.java-version" ] && . " $JRUBY_HOME /bin/.java-version " && [ " ${JRUBY_MINIMUM_JAVA_VERSION-} " ] ; then
524+ minimum_java_version=$JRUBY_MINIMUM_JAVA_VERSION
519525else
520526 # Only 9.4.12.0 and earlier will have shipped without a .java-version file, so fall back on minimum of 8
521527 minimum_java_version=8
522528fi
523529add_log " Detected Java version: $java_version "
524530
525- # Split version out for integer comparisons
526- java_major=${java_version%% .* }
531+ # Present a useful error if running a Java version lower than bin/.java-version
532+ if [ " $java_major " -lt " $minimum_java_version " ]; then
533+ echo " This version of JRuby requires Java ${minimum_java_version} +."
534+ echo " Make sure JAVA_HOME points at JDK ${minimum_java_version} or higher"
535+ echo " Detected Java version: $java_version "
536+ echo " Detected JAVA_HOME: $JAVA_HOME "
537+ exit 1
538+ fi
527539
528540# AppCDS support
529541if [ " $java_major " -ge 13 ] && exists " $JAVA_HOME " /lib/server/* .jsa; then
@@ -536,14 +548,6 @@ readonly java_has_appcds
536548# Default to using AppCDS if available
537549use_jsa_file=" $java_has_appcds "
538550
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-
547551# AppCDS autogeneration
548552if [ " $java_major " -ge 19 ]; then
549553 java_has_appcds_autogenerate=true
0 commit comments