Skip to content

Commit 14dea60

Browse files
committed
Avoid passing bogus -classpath when empty
If no CLASSPATH env is provided when running jruby.sh, we end up building a bogus classpath flag of `-classpath :`. Other situations may result in forms like `-classpath some.jar:` or `-classpath :some.jar`. The changes here avoid passing -classpath at all if empty, and only insert delimiters when concatenating classpaths if they are non-empty. Possible fix for jruby#9255
1 parent f1c5ab7 commit 14dea60

1 file changed

Lines changed: 21 additions & 4 deletions

File tree

bin/jruby.sh

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,15 @@ JAVA_OPTS="$JAVA_OPTS ${JAVA_MEM-} ${JAVA_STACK-}"
849849

850850
JFFI_OPTS="-Djffi.boot.library.path=$JRUBY_HOME/lib/jni"
851851

852-
CLASSPATH="${CP-}${CP_DELIMITER}${CLASSPATH-}"
852+
if [ -n "${CP-}" ]; then
853+
if [ -n "${CLASSPATH-}" ]; then
854+
CLASSPATH="${CP-}${CP_DELIMITER}${CLASSPATH-}"
855+
else
856+
CLASSPATH="${CP-}"
857+
fi
858+
else
859+
CLASSPATH="${CLASSPATH-}"
860+
fi
853861

854862
# ----- Module and Class Data Sharing flags for Java 9+ -----------------------
855863

@@ -992,13 +1000,22 @@ prepend java_args "$JAVACMD"
9921000
if $NO_BOOTCLASSPATH || $VERIFY_JRUBY; then
9931001
if $use_modules; then
9941002
# Use module path instead of classpath for the jruby libs
995-
append java_args --module-path "$JRUBY_CP" -classpath "$CLASSPATH"
1003+
append java_args --module-path "$JRUBY_CP"
1004+
if [ -n "$CLASSPATH" ]; then
1005+
append java_args -classpath "$CLASSPATH"
1006+
fi
9961007
else
997-
append java_args -classpath "$JRUBY_CP$CP_DELIMITER$CLASSPATH"
1008+
if [ -n "$CLASSPATH" ]; then
1009+
append java_args -classpath "$JRUBY_CP$CP_DELIMITER$CLASSPATH"
1010+
else
1011+
append java_args -classpath "$JRUBY_CP"
1012+
fi
9981013
fi
9991014
else
10001015
append java_args -Xbootclasspath/a:"$JRUBY_CP"
1001-
append java_args -classpath "$CLASSPATH"
1016+
if [ -n "$CLASSPATH" ]; then
1017+
append java_args -classpath "$CLASSPATH"
1018+
fi
10021019
append java_args -Djruby.home="$JRUBY_HOME"
10031020
fi
10041021

0 commit comments

Comments
 (0)