1@echo off 2:: Launch FindBugs on a Windows system. 3:: Adapted from scripts found at http://www.ericphelps.com/batch/ 4:: This will only work on Windows NT or later! 5 6:: Don't affect environment outside of this invocation 7setlocal 8 9:: ---------------------------------------------------------------------- 10:: Set up default values 11:: ---------------------------------------------------------------------- 12set appjar=findbugs.jar 13set javahome= 14set launcher=java.exe 15set start=start "FindBugs" 16set jvmargs= 17set debugArg= 18set conserveSpaceArg= 19set workHardArg= 20set args= 21set javaProps= 22set maxheap=768 23 24REM default UI is gui2 25set launchUI=2 26 27:: Try finding the default FINDBUGS_HOME directory 28:: from the directory path of this script 29set default_findbugs_home=%~dp0.. 30 31:: Honor JAVA_HOME environment variable if it is set 32if "%JAVA_HOME%"=="" goto nojavahome 33if not exist "%JAVA_HOME%\bin\javaw.exe" goto nojavahome 34set javahome=%JAVA_HOME%\bin\ 35:nojavahome 36 37goto loop 38 39:: ---------------------------------------------------------------------- 40:: Process command-line arguments 41:: ---------------------------------------------------------------------- 42 43:shift2 44shift 45:shift1 46shift 47 48:loop 49 50:: Remove surrounding quotes from %1 and %2 51set firstArg=%~1 52set secondArg=%~2 53 54if "%firstArg%"=="" goto launch 55 56:: AddMessages 57if not "%firstArg%"=="-addMessages" goto notAddMessages 58set fb_mainclass=edu.umd.cs.findbugs.AddMessages 59goto shift1 60:notAddMessages 61 62:: computeBugHistory 63if not "%firstArg%"=="-computeBugHistory" goto notUpdate 64set fb_mainclass=edu.umd.cs.findbugs.workflow.Update 65goto shift1 66:notUpdate 67 68:: convertXmlToText 69if not "%firstArg%"=="-xmltotext" goto notXmlToText 70set fb_mainclass=edu.umd.cs.findbugs.PrintingBugReporter 71goto shift1 72:notXmlToText 73 74:: copyBuggySource 75if not "%firstArg%"=="-copyBS" goto notCopyBS 76set fb_mainclass=edu.umd.cs.findbugs.workflow.CopyBuggySource 77goto shift1 78:notCopyBS 79 80:: defectDensity 81if not "%firstArg%"=="-defectDensity" goto notDefectDensity 82set fb_mainclass=edu.umd.cs.findbugs.workflow.DefectDensity 83goto shift1 84:notDefectDensity 85 86:: filterBugs 87if not "%firstArg%"=="-filterBugs" goto notFilterBugs 88set fb_mainclass=edu.umd.cs.findbugs.workflow.Filter 89goto shift1 90:notFilterBugs 91 92:: listBugDatabaseInfo 93if not "%firstArg%"=="-listBugDatabaseInfo" goto notListBugDatabaseInfo 94set fb_mainclass=edu.umd.cs.findbugs.workflow.ListBugDatabaseInfo 95goto shift1 96:notListBugDatabaseInfo 97 98:: mineBugHistory 99if not "%firstArg%"=="-mineBugHistory" goto notMineBugHistory 100set fb_mainclass=edu.umd.cs.findbugs.workflow.MineBugHistory 101goto shift1 102:notMineBugHistory 103 104:: printAppVersion 105if not "%firstArg%"=="-printAppVersion" goto notPrintAppVersion 106set fb_mainclass=edu.umd.cs.findbugs.workflow.PrintAppVersion 107goto shift1 108:notPrintAppVersion 109 110:: printClass 111if not "%firstArg%"=="-printClass" goto notPrintClass 112set fb_mainclass=edu.umd.cs.findbugs.workflow.PrintClass 113goto shift1 114:notPrintClass 115 116:: rejarForAnalysis 117if not "%firstArg%"=="-rejar" goto notRejar 118set fb_mainclass=edu.umd.cs.findbugs.workflow.RejarClassesForAnalysis 119goto shift1 120:notRejar 121 122:: setBugDatabaseInfo 123if not "%firstArg%"=="-setInfo" goto notSetBugDatabaseInfo 124set fb_mainclass=edu.umd.cs.findbugs.workflow.SetBugDatabaseInfo 125goto shift1 126:notSetBugDatabaseInfo 127 128:: unionBugs 129if not "%firstArg%"=="-unionBugs" goto notUnionBugs 130set fb_mainclass=edu.umd.cs.findbugs.workflow.UnionResults 131goto shift1 132:notUnionBugs 133 134:: xpathFind 135if not "%firstArg%"=="-xpathFind" goto notXPathFind 136set fb_mainclass=edu.umd.cs.findbugs.workflow.XPathFind 137goto shift1 138:notXPathFind 139 140if not "%firstArg%"=="-gui" goto notGui 141set launchUI=2 142set launcher=javaw.exe 143goto shift1 144:notGui 145 146if not "%firstArg%"=="-gui1" goto notGui1 147set launchUI=1 148set javaProps=-Dfindbugs.launchUI=1 %javaProps% 149set launcher=javaw.exe 150goto shift1 151:notGui1 152 153if not "%firstArg%"=="-textui" goto notTextui 154set launchUI=0 155set launcher=java.exe 156set start= 157goto shift1 158:notTextui 159 160if not "%firstArg%"=="-debug" goto notDebug 161set launcher=java.exe 162set start= 163set debugArg=-Dfindbugs.debug=true 164goto shift1 165:notDebug 166 167if not "%firstArg%"=="-help" goto notHelp 168set launchUI=help 169set launcher=java.exe 170set start= 171goto shift1 172:notHelp 173 174if not "%firstArg%"=="-version" goto notVersion 175set launchUI=version 176set launcher=java.exe 177set start= 178goto shift1 179:notVersion 180 181if "%firstArg%"=="-home" set FINDBUGS_HOME=%secondArg% 182if "%firstArg%"=="-home" goto shift2 183 184if "%firstArg%"=="-jvmArgs" set jvmargs=%secondArg% 185if "%firstArg%"=="-jvmArgs" goto shift2 186 187if "%firstArg%"=="-maxHeap" set maxheap=%secondArg% 188if "%firstArg%"=="-maxHeap" goto shift2 189 190if "%firstArg%"=="-conserveSpace" set conserveSpaceArg=-Dfindbugs.conserveSpace=true 191if "%firstArg%"=="-conserveSpace" goto shift1 192 193if "%firstArg%"=="-workHard" set workHardArg=-Dfindbugs.workHard=true 194if "%firstArg%"=="-workHard" goto shift1 195 196if "%firstArg%"=="-javahome" set javahome=%secondArg%\bin\ 197if "%firstArg%"=="-javahome" goto shift2 198 199if "%firstArg%"=="-property" set javaProps=-D%secondArg% %javaProps% 200if "%firstArg%"=="-property" goto shift2 201 202if "%firstArg%"=="" goto launch 203 204set args=%args% "%firstArg%" 205goto shift1 206 207:: ---------------------------------------------------------------------- 208:: Launch FindBugs 209:: ---------------------------------------------------------------------- 210:launch 211:: Make sure FINDBUGS_HOME is set. 212:: If it isn't, try using the default value based on the 213:: directory path of the invoked script. 214:: Note that this will fail miserably if the value of FINDBUGS_HOME 215:: has quote characters in it. 216if not "%FINDBUGS_HOME%"=="" goto checkHomeValid 217set FINDBUGS_HOME=%default_findbugs_home% 218 219:checkHomeValid 220if not exist "%FINDBUGS_HOME%\lib\%appjar%" goto homeNotSet 221 222:found_home 223:: Launch FindBugs! 224if "%fb_mainclass%"=="" goto runJar 225"%javahome%%launcher%" %debugArg% %conserveSpaceArg% %workHardArg% %javaProps% "-Dfindbugs.home=%FINDBUGS_HOME%" -Xmx%maxheap%m %jvmargs% "-Dfindbugs.launchUI=%launchUI%" -cp "%FINDBUGS_HOME%\lib\%appjar%" %fb_mainclass% %args% 226goto end 227:runjar 228%start% "%javahome%%launcher%" %debugArg% %conserveSpaceArg% %workHardArg% %javaProps% "-Dfindbugs.home=%FINDBUGS_HOME%" -Xmx%maxheap%m %jvmargs% "-Dfindbugs.launchUI=%launchUI%" -jar "%FINDBUGS_HOME%\lib\%appjar%" %args% 229goto end 230 231:: ---------------------------------------------------------------------- 232:: Report that FINDBUGS_HOME is not set (and was not specified) 233:: ---------------------------------------------------------------------- 234:homeNotSet 235echo Could not find FindBugs home directory. There may be a problem 236echo with the FindBugs installation. Try setting FINDBUGS_HOME, or 237echo re-installing. 238goto end 239 240:end 241