最近部分项目的子系统由linux转向windows,根据实际情况的需求结合网络资源整理了一份Bat脚本,用于在Windows下启动java app。
脚本:
@echo off REM Project name: Windows下的java启动脚本 REM Author: Jason REM Date: 2013-4-16 REM Version: 1.0 IF "%CLASSPATH%" EQU "" ( echo CLASSPATH PARARMS IS NULL pause goto END ) REM 叠加classpath method IF "%1"=="##" goto ENVSET REM 库文件所在的目录,相对于当前路径 SET LIBDIR=libs REM 设定CLSPATH 变量,并初始化为系统的classpath SET CLSPATH=%CLASSPATH% REM 读取指定Libs目录下的*.jar,并执行ENVSET函数进行classpath叠加 FOR %%c IN (%LIBDIR%\*.jar) DO CALL %0 ## %%c REM 从app.pro 资源文件中读取启动脚本所需的信息,如:title、app launcher、jvm params... REM app.pro是N个键值对,重复的键将被最后一个替换,不会叠加 FOR /F "tokens=1,2 delims==" %%A IN (.\app.properties) DO set %%A=%%B title %app.title% REM 指定logback配置文件所在位置 REM 废弃 REM set LogArgs=-Dlogback.configurationFile=conf/logback.xml REM 要启动的类名 SET CLSNAME=%app.launcher% REM JVM参数设定 IF "%app.xmx%" NEQ "" ( set App.xmx=%app.xmx% ) else ( set App.xmx=-Xmx256M ) IF "%app.xms%" NEQ "" ( set App.xms=%app.xms% ) else ( set App.xms=-Xms256M ) IF "%app.xmn%" NEQ "" ( set App.xmn=%app.xmn% ) else ( set App.xmn=-Xmn30M ) IF "%app.xss%" NEQ "" ( set App.xss=%app.xss% ) else ( set App.xss=-Xss256K ) set MemoryArgs=%App.xmx% %App.xms% %App.xmn% %App.xss% REM 运行app GOTO RUN :RUN echo %CLSPATH% java -cp %CLSPATH% %MemoryArgs% %CLSNAME% goto END :ENVSET set CLSPATH=%CLSPATH%;%2 goto END :END