Skip to content

Commit 8a96dd7

Browse files
committed
Fix for JRUBY-2720, only put JRuby jar in boot classpath, leaving others on normal classpath.
git-svn-id: http://svn.codehaus.org/jruby/trunk/jruby@7085 961051c9-f516-0410-bf72-c9f7e237a7b7
1 parent 50cdb7a commit 8a96dd7

4 files changed

Lines changed: 42 additions & 8 deletions

File tree

bin/_jrubycleanup.bat

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ rem ----- Restore Environment Variables ---------------------------------------
66
set CLASSPATH=%_CLASSPATH%
77
set _CLASSPATH=
88
set CP=%_CP%
9+
set JRUBY_CP=%_JRUBY_CP%
910
set _CP=
11+
set _JRUBY_CP=
1012
set JAVA_COMMAND=%_JAVA_COMMAND%
1113
set _LIBJARS=
1214
set _RUNJAVA=

bin/_jrubyvars.bat

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ rem ----- Save Environment Variables That May Change --------------------------
1010

1111
set _CLASSPATH=%CLASSPATH%
1212
set _CP=%CP%
13+
set _JRUBY_CP=%JRUBY_CP%
1314
set JRUBY_BAT_ERROR=0
1415

1516
rem ----- Verify and Set Required Environment Variables -----------------------
@@ -42,13 +43,29 @@ rem ----- Set up the VM options
4243
call "%~dp0_jrubyvmopts" %*
4344
set _RUNJAVA="%JAVA_HOME%\bin\java"
4445

45-
rem ----- Set Up The Runtime Classpath ----------------------------------------
46+
rem ----- Set Up The Boot Classpath ----------------------------------------
47+
48+
for %%i in ("%JRUBY_HOME%\lib\jruby*.jar") do @call :setjrubycp %%i
49+
50+
rem ----- Set Up The System Classpath ----------------------------------------
4651

4752
for %%i in ("%JRUBY_HOME%\lib\*.jar") do @call :setcp %%i
4853

4954
goto :EOF
5055

51-
rem Setcp subroutine
56+
rem setcp subroutine
57+
:setcp
58+
if not "%JRUBY_CP%" == "" goto add
59+
60+
set JRUBY_CP=%*
61+
goto :EOF
62+
63+
:add
64+
set JRUBY_CP=%JRUBY_CP%;%*
65+
66+
goto :EOF
67+
68+
rem setjrubycp subroutine
5269
:setcp
5370
if not "%CP%" == "" goto add
5471

bin/jruby

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,30 @@ fi
5252

5353
JRUBY_SHELL=/bin/sh
5454

55+
# ----- Set Up The Boot Classpath -------------------------------------------
56+
57+
CP_DELIMETER=":"
58+
59+
# add jruby jars for command-line execution
60+
for j in "$JRUBY_HOME"/lib/jruby*.jar; do
61+
if [ "$JRUBY_CP" ]; then
62+
JRUBY_CP="$JRUBY_CP$CP_DELIMETER$j"
63+
else
64+
JRUBY_CP="$j"
65+
fi
66+
done
67+
68+
if $cygwin; then
69+
JRUBY_CP=`cygpath -p -w "$JRUBY_CP"`
70+
fi
71+
5572
# ----- Set Up The System Classpath -------------------------------------------
5673

5774
if [ "$JRUBY_PARENT_CLASSPATH" != "" ]; then
5875
# Use same classpath propagated from parent jruby
5976
CP=$JRUBY_PARENT_CLASSPATH
6077
else
61-
CP_DELIMETER=":"
62-
63-
# add necessary jars for command-line execution
78+
# add other jars in lib to CP for command-line execution
6479
for j in "$JRUBY_HOME"/lib/*.jar; do
6580
if [ "$CP" ]; then
6681
CP="$CP$CP_DELIMETER$j"
@@ -190,7 +205,7 @@ if [ "$VERIFY_JRUBY" != "" ]; then
190205
echo "Running with instrumented profiler"
191206
fi
192207

193-
$JAVA_CMD $PROFILE_ARGS $JAVA_OPTS "${java_args[@]}" -classpath "$CP$CP_DELIMETER$CLASSPATH" \
208+
$JAVA_CMD $PROFILE_ARGS $JAVA_OPTS "${java_args[@]}" -classpath "$JRUBY_CP$CP_DELIMETER$CP$CP_DELIMETER$CLASSPATH" \
194209
"-Djruby.home=$JRUBY_HOME" \
195210
"-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
196211
"-Djruby.shell=$JRUBY_SHELL" \
@@ -202,7 +217,7 @@ if [ "$VERIFY_JRUBY" != "" ]; then
202217
cat profile.txt
203218
fi
204219
else
205-
exec "$JAVA_CMD" $JAVA_OPTS "${java_args[@]}" -Xbootclasspath/a:"$CP" -classpath "$CLASSPATH" \
220+
exec "$JAVA_CMD" $JAVA_OPTS "${java_args[@]}" -Xbootclasspath/a:"$JRUBY_CP" -classpath "$CP$CP_DELIMETER$CLASSPATH" \
206221
"-Djruby.home=$JRUBY_HOME" \
207222
"-Djruby.lib=$JRUBY_HOME/lib" -Djruby.script=jruby \
208223
"-Djruby.shell=$JRUBY_SHELL" \

bin/jruby.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ IF EXIST "%~dp0_jrubyvars.bat" (set FULL_PATH=%~dp0) ELSE (set FULL_PATH=%~dp$PA
1313

1414
call "%FULL_PATH%_jrubyvars.bat" %*
1515

16-
if %JRUBY_BAT_ERROR%==0 "%_STARTJAVA%" %_VM_OPTS% -Xbootclasspath/a:"%CP%" -classpath "%CLASSPATH%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% %_RUBY_OPTS%
16+
if %JRUBY_BAT_ERROR%==0 "%_STARTJAVA%" %_VM_OPTS% -Xbootclasspath/a:"%JRUBY_CP%" -classpath "%CP%;%CLASSPATH%" -Djruby.home="%JRUBY_HOME%" -Djruby.lib="%JRUBY_HOME%\lib" -Djruby.shell="cmd.exe" -Djruby.script=jruby.bat org.jruby.Main %JRUBY_OPTS% %_RUBY_OPTS%
1717
set E=%ERRORLEVEL%
1818

1919
call "%FULL_PATH%_jrubycleanup"

0 commit comments

Comments
 (0)