【转】在批处理中加载某个目录所有的jar
来源:互联网 发布:平价水乳 知乎 编辑:程序博客网 时间:2024/05/16 12:12
我平常做服务器或者应用程序的时候喜欢把各种依赖包如log4j, jdbc, commons-lang等放到一个lib目录下,然后启动的时候将这些jar包设置到classpath上。以前我经常使用set classpath=log4j.jar;jdbc.jar;commons-lang.jar硬加载,但问题就是每新加入一个jar,就得改批处理一次,再就是每开发一个就得这么设置一次。很烦人,perl 创始人说,偷懒的程序员才是好程序员:),我需要一个通用的加载方式。
不管linux/windows或其它OS,都提供一个shell与kernel交互,并且shell都有一个类似的for内置commnd。
下面是linux bash的尝试
工作的很好,于是在windows同样try了一下batch
很奇怪的是最后的结果却是 classpath is bootstrap.jar;D:\workflow\bingo\lib\servlet-api.jar。很显然batch默认不支持变量迭代更改。
google了一下,发现原因,稍微改一下:
不管linux/windows或其它OS,都提供一个shell与kernel交互,并且shell都有一个类似的for内置commnd。
下面是linux bash的尝试
#!/usr/bin/sh
clspath="bootstrap.jar"
for k in *.jar
do
clspath=$clspath:$PWD/$k
echo "current jar is $k."
done
printf "classpath is %s" $clspath
clspath="bootstrap.jar"
for k in *.jar
do
clspath=$clspath:$PWD/$k
echo "current jar is $k."
done
printf "classpath is %s" $clspath
工作的很好,于是在windows同样try了一下batch
@echo off
set clspath=bootstrap.jar
for %%j in (*.jar) do (
set clspath=%clspath%;%cd%\%%j
echo current jar is %%j.
)
echo classpath is %clspath%
set clspath=bootstrap.jar
for %%j in (*.jar) do (
set clspath=%clspath%;%cd%\%%j
echo current jar is %%j.
)
echo classpath is %clspath%
很奇怪的是最后的结果却是 classpath is bootstrap.jar;D:\workflow\bingo\lib\servlet-api.jar。很显然batch默认不支持变量迭代更改。
google了一下,发现原因,稍微改一下:
1@echo off
2
3set clspath=bootstrap.jar
4setlocal enabledelayedexpansion
5for %%j in (*.jar) do (
6set clspath=!clspath!;%cd%\%%j
7echo current jar is %%j.
8)
9echo classpath is %clspath%
10endlocal
2
3set clspath=bootstrap.jar
4setlocal enabledelayedexpansion
5for %%j in (*.jar) do (
6set clspath=!clspath!;%cd%\%%j
7echo current jar is %%j.
8)
9echo classpath is %clspath%
10endlocal
对比一下,可以发现:
- 第4行加上了setlocal enabledelayedexpansion,即变量延迟展开。
- 第10行有一个endlocal,结束这个设置
- 第6行把%classpath%变成了!classpath!。
虽然目的达到了,还是要鄙视微软的dos batch,实在很弱,不知Powershell怎样。
参考资料:
setlocal
0
上一篇:【转】jar参数运行应用时classpath的设置方法
下一篇:[转]java的System.getProperty()方法可以获取的值
相关热门文章
- View与ViewGroup的概念
- 关于ip_conntrack跟踪连接满导...
- 我的第一个python程序之续集...
- HTML5 音视频媒体处理相关...
- 欢迎进攻高于所有在ChinaUnix...
- Tomcat 6 配置SSI
- tomcat + ssi
- JDK1.6官方下载_JDK6官方下载_...
- Java 判断文件夹、文件是否存...
- 如何正确(完美)卸载Java/JDK/J...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- 【转】在批处理中加载某个目录所有的jar
- 在批处理中加载某个目录所有的jar
- 在批处理中加载某个目录所有的jar
- 在CLASSPATH中加载目录下所有的jar
- 在CLASSPATH中加载目录下所有的jar
- 向CLASSPATH中增加某目录下所有Jar的批处理实现
- 在某个目录下的所有文件的内容中,查找包含某个字符串的文件
- 在某个目录下的所有文件中查找包含某个字符串的Windows命令
- 在某个目录下的所有文件中查找包含某个字符串的Windows命令
- 在某个目录下的所有文件中查找包含某个字符串的Windows命令
- Windows 在某个目录下的所有文件中查找包含某个字符串
- 在一个目录及其所有子目录下所有的文件中查找某个单词
- Windows下在某个目录下的所有文件中查找特定字符串
- JAVA加载JAR包并调用JAR包中某个类的某个方法
- 加载并获取jar包中某个类的某个方法
- 如何在linux正常启动的系统中(挂载rootfs)某个目录下来加载ubi文件类型的recoveryfs?
- 列出某个目录下的所有文件
- 获取某个目录下所有的文件
- 有关ListView优化机制及滑动时数据错乱问题的讨论
- 【转】JAVA下的多线程程序造成系统时钟变快
- 【转】命令行执行main方法
- 【转】jar参数运行应用时classpath的设置方法
- ViewPager 的 PagerAdapter的官方的说明 摘录
- 【转】在批处理中加载某个目录所有的jar
- [转]java的System.getProperty()方法可以获取的值
- java.lang.UnsatisfiedLinkError:Unable to load
- 【转】[Java]Stack栈和Heap堆的区别(终结篇)
- jdk环境变量配置:java.lang.NoClassDefFoundError
- 两种方式调试JNI中DLL(动态链接库)
- VS2015编译openjpeg(32/64位)
- 解决斜杠符号被转义的问题
- 【转】Java命令行运行参数说明大全(偷来的)
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
亚人真人版中文字幕在线播放
大亚湾为什么没人住
桐人君x和亚丝娜灌药
萨摩亚人女性身材
亚人在线播放
亚人第三季
萨摩亚人为什么强壮
亚人9页码
格鲁吉亚女人会嫁给中国人吗
奇亚籽什么人不能吃
亚l洲宗人网
亚波人
亚人真人版结局
格鲁吉亚对中国人免签吗
布里亚特人
亚人佐藤
亚人吧
亚人结局
亚人3
亚人在线
亚伟速录
亚伟速录一般学多久
亚伦
巫师亚伯
亚伯
该隐与亚伯
巫师亚伯txt
巫师亚伯 吃瓜子群众
巫师亚伯txt下载
该隐亚伯
书亚信
亚信
亚信科技
亚信娱乐
亚信安全
亚信集团
许戈辉大闹亚信
亚信科技有限公司
兰州亚信达物资有限公司
亚信的外包员工好可怜
亚信科技招聘