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

本文介绍了一个bat脚本如何设置类路径并启动jar包中的main方法。通过分析bat脚本(startup.bat)和环境配置脚本(setenv.bat),解释了如何遍历指定目录下的所有jar文件并将它们加入类路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值