@echo off rem This file was generated by the Jython installer rem Created on Sat Apr 02 17:40:41 CEST 2011 by yole set JAVA_HOME="C:\Program Files (x86)\Java\jre6" set JYTHON_HOME_FALLBACK="C:\jython2.5.2" @echo off rem --------------------------------------------------------------------------- rem jython.bat - start script for Jython (adapted from jruby.bat) rem rem Environment variables (optional) rem rem JAVA_HOME Java installation directory rem rem JYTHON_HOME Jython installation directory rem rem JYTHON_OPTS Default Jython command line arguments rem rem --------------------------------------------------------------------------- rem If running in Take Command (4NT), force to run in cmd.exe if not "%@eval[2+2]" == "4" goto normalstart cmd /C %0 %* goto finish :normalstart set _PERCENT=%% set _EXCLAMATION=! setlocal enabledelayedexpansion rem ----- Verify and set required environment variables ----------------------- rem make sure to clear the internal variables, to prevent leaking into subprocess calls set _JAVA_CMD=java if defined JAVA_HOME set _JAVA_CMD="%JAVA_HOME:"=%\bin\java" set _JYTHON_OPTS= if defined JYTHON_OPTS set _JYTHON_OPTS="%JYTHON_OPTS:"=%" set _JYTHON_HOME= if defined JYTHON_HOME set _JYTHON_HOME="%JYTHON_HOME:"=%" if defined _JYTHON_HOME goto gotHome rem try to dynamically determine jython home rem (this script typically resides in jython home, or in the /bin subdirectory) pushd "%~dp0%" set _JYTHON_HOME="%CD%" popd if exist %_JYTHON_HOME%\jython-dev.jar goto gotHome if exist %_JYTHON_HOME%\jython.jar goto gotHome pushd "%~dp0%\.." set _JYTHON_HOME="%CD%" popd if exist %_JYTHON_HOME%\jython-dev.jar goto gotHome if exist %_JYTHON_HOME%\jython.jar goto gotHome rem jython home fallback (if all else fails) rem if present, %JYTHON_HOME_FALLBACK% is already quoted set _JYTHON_HOME=%JYTHON_HOME_FALLBACK% :gotHome if not exist %_JYTHON_HOME%\jython-dev.jar goto tryComplete rem prefer built version set _CP=%_JYTHON_HOME%\jython-dev.jar for %%j in (%_JYTHON_HOME%\javalib\*.jar) do ( set _CP=!_CP!;"%%j" ) goto run :tryComplete set _CP=%_JYTHON_HOME%\jython.jar if exist %_JYTHON_HOME%/jython.jar goto run echo Cannot find jython-dev.jar or jython.jar in %_JYTHON_HOME% echo Try running this batch file from the 'bin' directory of an installed Jython, echo or setting JYTHON_HOME. goto cleanup rem ----- Execute the requested command ---------------------------------------- :run set _JAVA_MEM=-Xmx512m rem 1152k is the minimum for test_marshal to pass. Windows' default is rem apparently 1M, anyway set _JAVA_STACK=-Xss1152k rem Escape any quotes. Use _S for ', _D for ", and _U to escape _ itself. rem We have to escape _ itself, otherwise file names with _S and _D rem will be converted to to wrong ones, when we un-escape. See JRUBY-2821. set _ARGS=%* if not defined _ARGS goto argsDone set _ARGS=%_ARGS:_=_U% set _ARGS=%_ARGS:'=_S% set _ARGS=%_ARGS:"=_D% rem also escape % signs set _replaceVal=%_ARGS% call :escape set _ARGS=%_replaceVal% set _ARGS="%_ARGS%" set _JYTHON_ARGS= :scanArgs rem split args by spaces into first and rest for /f "tokens=1,*" %%i in (%_ARGS%) do call :getArg "%%i" "%%j" goto procArg :getArg rem remove quotes around first arg set _CMP=%~1 set _ARGS=%2 goto :EOF :procArg if ["%_CMP%"] == [""] ( set _ARGS= goto argsDone ) REM NOTE: If you'd like to use a parameter with underscore in its name, REM NOTE: use the quoted value: --do_stuff -> --do_Ustuff if ["%_CMP%"] == ["--"] goto argsDone if ["%_CMP%"] == ["--jdb"] ( if defined JAVA_HOME ( set _JAVA_CMD="%JAVA_HOME:"=%\bin\jdb" ) else ( set _JAVA_CMD=jdb ) goto :nextArg ) if ["%_CMP%"] == ["--boot"] ( set _BOOT_CP=-Xbootclasspath/a:%_CP% goto :nextArg ) if ["%_CMP%"] == ["--print"] ( set _PRINT=print goto :nextArg ) rem now unescape everything set _replaceVal=%_CMP% call :escape set _CMP=%_replaceVal% set _CMP=%_CMP:_D="% set _CMP=%_CMP:_S='% set _CMP=%_CMP:_U=_% set _CMP1=%_CMP:~0,1% set _CMP2=%_CMP:~0,2% rem detect first character is a quote; skip directly to jythonArg rem this avoids a batch syntax error if "%_CMP1:"=\\%" == "\\" goto jythonArg rem removing quote avoids a batch syntax error if "%_CMP2:"=\\%" == "-J" goto jvmArg :jythonArg set _JYTHON_ARGS=%_JYTHON_ARGS% %_CMP% goto nextArg :jvmArg set _VAL=%_CMP:~2% if "%_VAL:~0,4%" == "-Xmx" ( set _JAVA_MEM=%_VAL% ) else if "%_VAL:~0,4%" == "-Xss" ( set _JAVA_STACK=%_VAL% ) else ( set _JAVA_OPTS=%_JAVA_OPTS% %_VAL% ) :nextArg set _CMP= goto scanArgs :argsDone rem do not use 'if () else ()': this does not work with CLASSPATH containing '(x86)' if defined _BOOT_CP goto fullCmd if defined CLASSPATH goto classpathDefined set CLASSPATH=%_CP:"=% goto fullCmd :classpathDefined set CLASSPATH=%_CP:"=%;%CLASSPATH:"=% :fullCmd set _FULL_CMD=%_JAVA_CMD% %_JAVA_OPTS% %_JAVA_MEM% %_JAVA_STACK% -Dpython.home=%_JYTHON_HOME% -Dpython.executable="%~f0" %_BOOT_CP% -classpath "%CLASSPATH%" org.python.util.jython %_JYTHON_OPTS% %_JYTHON_ARGS% %_ARGS% if defined _PRINT ( echo %_FULL_CMD% ) else ( %_FULL_CMD% ) set E=%ERRORLEVEL% :cleanup set _ARGS= set _CMP= set _CMP1= set _CMP2= set _CP= set _BOOT_CP= set _FULL_CMD= set _JAVA_CMD= set _JAVA_OPTS= set _JAVA_MEM= set _JAVA_STACK= set _JYTHON_HOME= set _JYTHON_OPTS= set _JYTHON_ARGS= set _PRINT= goto finish REM escapes or unescapes % with @@P@@, and ! with @@E@@ REM input: a text variable named _replaceVal REM result: _replaceVal has the new value :escape if not defined _replaceVal goto :EOF set /a _index=-1 set _replaced= :escapeNext set /a _index=%_index% + 1 call set _escapeChar=%%_replaceVal:~%_index%,1%% if ^"==^%_escapeChar% goto noEscape if ''=='%_escapeChar%' goto escapeEnd if "%_escapeChar%"==" " goto noEscape if "%_escapeChar%"=="@" goto unescapeCheck if "%_escapeChar%"=="%_EXCLAMATION%" goto escapeExclamation if "%_escapeChar%"=="%_PERCENT%" goto escapePercent :noEscape set _replaced=%_replaced%%_escapeChar% goto escapeNext :escapeExclamation set _replaced=%_replaced%@@E@@ goto escapeNext :escapePercent set _replaced=%_replaced%@@P@@ goto escapeNext :unescapeCheck set _isExclamation= set _isPercent= set _isUnrecognized=true set /a _aheadIndex=%_index% + 1 call set _aheadChar=%%_replaceVal:~%_aheadIndex%,1%% if ^"==^%_aheadChar% goto noEscape if "%_aheadChar%"=="@" set /a _aheadIndex=%_aheadIndex% + 1 call set _aheadChar=%%_replaceVal:~%_aheadIndex%,1%% if ^"==^%_aheadChar% goto noEscape if "%_aheadChar%"=="E" set _isExclamation=true & set _isUnrecognized= if "%_aheadChar%"=="P" set _isPercent=true & set _isUnrecognized= if defined _isUnrecognized goto noEscape set _isUnrecognized=true set /a _aheadIndex=%_aheadIndex% + 1 call set _aheadChar=%%_replaceVal:~%_aheadIndex%,1%% if ^"==^%_aheadChar% goto noEscape if "%_aheadChar%"=="@" set /a _aheadIndex=%_aheadIndex% + 1 call set _aheadChar=%%_replaceVal:~%_aheadIndex%,1%% if ^"==^%_aheadChar% goto noEscape if "%_aheadChar%"=="@" set _isUnrecognized= if defined _isUnrecognized goto noEscape if defined _isExclamation goto unescapeExclamation if defined _isPercent goto unescapePercent goto noEscape :unescapeExclamation set _replaced=%_replaced%%_EXCLAMATION% set /a _index=%_index% + 4 goto escapeNext :unescapePercent set _replaced=%_replaced%%_PERCENT% set /a _index=%_index% + 4 goto escapeNext :escapeEnd set _replaceVal=%_replaced% goto :EOF :finish set _UNQUOTED_COMSPEC=%COMSPEC:"=% "%_UNQUOTED_COMSPEC%" /c exit /b %E%