Skip to content

Commit 854bc98

Browse files
committed
Additional tweaks for launcher
See jruby/jruby#8753
1 parent 9b79cd5 commit 854bc98

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

exe/jruby.sh

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -507,23 +507,35 @@ fi
507507
# shellcheck source=/dev/null
508508
if [ -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
513516
else
514-
java_version=8
517+
# assume Java 8 if no release file
518+
java_version=1.8
519+
java_major=8
515520
fi
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
519525
else
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
522528
fi
523529
add_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
529541
if [ "$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
537549
use_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
548552
if [ "$java_major" -ge 19 ]; then
549553
java_has_appcds_autogenerate=true

0 commit comments

Comments
 (0)