tomcat开始批量——setclasspath.bat
除了上述两批,另一个重要的脚本,那是,setclasspath.bat。它主要负责查找、检查JAVA_HOME和JRE_HOME两个变量。
********************************************************************************************
if ""%1"" ==""debug"" goto needJavaHome
if not "%JRE_HOME%" == "" gotogotJreHome
if not "%JAVA_HOME%" == "" gotogotJavaHome
goto exit
:needJavaHome
if "%JAVA_HOME%" == "" gotonoJavaHome
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
if not exist "%JAVA_HOME%\bin\javaw.exe"goto noJavaHome
if not exist "%JAVA_HOME%\bin\jdb.exe" gotonoJavaHome
if not exist "%JAVA_HOME%\bin\javac.exe"goto noJavaHome
set "JRE_HOME=%JAVA_HOME%"
goto okJava
:noJavaHome
goto exit
:gotJavaHome
set "JRE_HOME=%JAVA_HOME%"
:gotJreHome
if not exist "%JRE_HOME%\bin\java.exe" goto noJreHome
if not exist "%JRE_HOME%\bin\javaw.exe" goto noJreHome
goto okJava
:noJreHome
goto exit
:okJava
if not "%JAVA_ENDORSED_DIRS%" == ""goto gotEndorseddir
set"JAVA_ENDORSED_DIRS=%CATALINA_HOME%\endorsed"
:gotEndorseddir
set _RUNJAVA="%JRE_HOME%\bin\java"
set _RUNJDB="%JAVA_HOME%\bin\jdb"
goto end
:exit
exit /b 1
:end
exit /b 0
********************************************************************************************
推断是否在debug模式下, 此模式下必需要设置JAVA_HOME环境变量,即跳到needJavaHome位置。
接着分别推断JRE_HOME、JAVA_HOME两个环境变量,不为空则分别跳到gotJreHome、gotJavaHome位置。
needJavaHome做的事情包含检查JAVA_HOME环境变量是否为空,不为空的话它的bin文件夹下是否存在java.exe、javaw.exe、jdb.exe、javac.exe等文件,这些文件都是执行时必要的执行文件,最后把JAVA_HOME变量的值赋给JRE_HOME。这里有必要说明一下exit标签跟end标签的不同。exit /b 1 即退出当前命令窗体并返回值1。exit /b 0 则是退出当前命令窗体并返回0,0表示在这段脚本执行中没有出现错误。所以假设一切执行正常的话,终于会得到JAVA_ENDORSED_DIRS="%CATALINA_HOME%\endorsed",_RUNJAVA="%JRE_HOME%\bin\java",_RUNJDB="%JAVA_HOME%\bin\jdb"。
喜欢研究java的同学能够交个朋友。以下是本人的微信号:
版权声明:本文博客原创文章,博客,未经同意,不得转载。