运行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 &
工程结构:
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 &
相关文章推荐
- dos下用java命令运行含包名的main方法
- 在centos中运行java命令时出现Error: Could not find or load main class XXX问题的解决方法
- idea创建一个java的maven,运行main方法找不到路径
- java运行shell命令,chmod 777 xxx,改变权限无效的解决的方法。
- 运行Java应用必须通过main()方法吗?
- JAVA 运行 提示 Exception in thread "main" java.lang.NoClassDefFoundError 解决方法
- 《Maven 在项目中运行java中的main方法》---利用插件跑java程序
- java命令运行时错误(Exception in thread "main" java.lang.NoClassDefFoundError)
- Java方法区和运行时常量池溢出问题分析(转)
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
- java运行jar包中指定Class的main方法
- java执行DOS命令或bat脚本需要等命令执行完有返回值(process.waitFor();)阻塞情况解决方法
- java运行带有main方法的jar文件
- java中main方法是怎么运行的?
- 在android中运行java main方法
- 用Maven运行main方法出现java.lang.ClassNotFoundException
- (48)Java中没有main方法也能运行输出的一种特例
- AndroidStudio运行java的main方法
- 关于命令行上执行java命令的错误分析 - Could not find or load main class
- idea运行单个java的main方法,不用编译整个项目