1 @echo off 2 REM Copyright (C) 2007 The Android Open Source Project 3 REM 4 REM Licensed under the Apache License, Version 2.0 (the "License"); 5 REM you may not use this file except in compliance with the License. 6 REM You may obtain a copy of the License at 7 REM 8 REM http://www.apache.org/licenses/LICENSE-2.0 9 REM 10 REM Unless required by applicable law or agreed to in writing, software 11 REM distributed under the License is distributed on an "AS IS" BASIS, 12 REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 REM See the License for the specific language governing permissions and 14 REM limitations under the License. 15 16 REM don't modify the caller's environment 17 setlocal 18 19 REM Locate dx.jar in the directory where dx.bat was found and start it. 20 21 REM Set up prog to be the path of this script, including following symlinks, 22 REM and set up progdir to be the fully-qualified pathname of its directory. 23 set prog=%~f0 24 25 rem Check we have a valid Java.exe in the path. 26 set java_exe= 27 if exist "%~dp0..\tools\lib\find_java.bat" call "%~dp0..\tools\lib\find_java.bat" 28 if exist "%~dp0..\..\tools\lib\find_java.bat" call "%~dp0..\..\tools\lib\find_java.bat" 29 if not defined java_exe goto :EOF 30 31 set jarfile=dx.jar 32 set "frameworkdir=%~dp0" 33 rem frameworkdir must not end with a dir sep. 34 set "frameworkdir=%frameworkdir:~0,-1%" 35 36 if exist "%frameworkdir%\%jarfile%" goto JarFileOk 37 set "frameworkdir=%~dp0lib" 38 39 if exist "%frameworkdir%\%jarfile%" goto JarFileOk 40 set "frameworkdir=%~dp0..\framework" 41 42 :JarFileOk 43 44 set "jarpath=%frameworkdir%\%jarfile%" 45 46 set javaOpts= 47 set args= 48 49 REM By default, give dx a max heap size of 1 gig and a stack size of 1meg. 50 rem This can be overridden by using "-JXmx..." and "-JXss..." options below. 51 set defaultXmx=-Xmx1024M 52 set defaultXss=-Xss1m 53 54 REM Capture all arguments that are not -J options. 55 REM Note that when reading the input arguments with %1, the cmd.exe 56 REM automagically converts --name=value arguments into 2 arguments "--name" 57 REM followed by "value". Dx has been changed to know how to deal with that. 58 set params= 59 60 :firstArg 61 if [%1]==[] goto endArgs 62 set a=%~1 63 64 if [%defaultXmx%]==[] goto notXmx 65 if %a:~0,5% NEQ -JXmx goto notXmx 66 set defaultXmx= 67 :notXmx 68 69 if [%defaultXss%]==[] goto notXss 70 if %a:~0,5% NEQ -JXss goto notXss 71 set defaultXss= 72 :notXss 73 74 if %a:~0,2% NEQ -J goto notJ 75 set javaOpts=%javaOpts% -%a:~2% 76 shift /1 77 goto firstArg 78 79 :notJ 80 set params=%params% %1 81 shift /1 82 goto firstArg 83 84 :endArgs 85 86 set javaOpts=%javaOpts% %defaultXmx% %defaultXss% 87 call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params% 88 89