您的位置:首页 > 编程语言 > Java开发

运行java main方法的bat命令分析

2013-09-30 16:44 369 查看
今天见到一个bat脚本,用于启动某jar包中的main方法,起初没看懂主要是对bat不了解,查了下资料大致明白了bat干了什么

工程结构:

test/lib/***.jar

/setenv.bat

/startup.bat

其中main方法所在类下lib下。

startup.bat:

===========

@echo off

set cp=

for %%i in (".\lib\*.jar") do call setenv.bat %%i

rem

java -cp %cp% com.test.DoMain > logs/test.log &

@pause

setenv.bat:

============

set cp=%cp%;%1

分析:

1.先百度下关于for的帮助

FOR %%variable IN (set) DO command [command-parameters]

所以%%i应该是代表了".\lib\*.jar"中的每一个jar包

for %%i in (".\lib\*.jar") 应该是遍历".\lib\*.jar"中的每一个jar包,同时用%%i来存储名称

call setenv.bat %%i 应该是把%%i当参数调用setenv.bat

set cp=%cp%;%1 应该是把每一个%%i和%cp%拼接起来,再次赋值给%cp%变量

所以:

set cp=

for %%i in (".\lib\*.jar") do call setenv.bat %%i

应该是遍历lib包下的每一个jar包,同时把jar包名称用;拼接成起来赋值给cp变量

java -cp %cp% com.test.DoMain 这个是执行java main方法

> logs/test.log & 这个是把启动中产生的信息输出到指定文件

=============

类似的sh文件也可以看明白了一些

#!/bin/bash

cd /home/test

classpath=".";

for i in $(ls lib/.)

do

classpath="$classpath:lib/$i"

done

java -cp $classpath com.test.DoMain > logs/test.log &
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: