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

今天见到一个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 &



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值