将某一目录下所有的jar文件都加入到CLASSPATH当中的简便写法

引用: http://www.javaeye.com/topic/244?page=2 中将某一目录下所有的jar文件都加入到CLASSPATH的写法,比较长:)

Quake Wang 写道
[code:1]
FOR %%i IN ("%HIBERN8IDE%\*.jar") DO CALL "setclasspath.bat" %%i
[/code:1]

setclasspath.bat:
[code:1]
SET _CLASSPATHCOMPONENT=%1
:argCheck
IF %2a==a GOTO gotAllArgs
SHIFT
SET _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1
GOTO argCheck
:gotAllArgs
SET CLASSPATH=%_CLASSPATHCOMPONENT%;%CLASSPATH%
[/code:1]


简便写法如下:

[code:1]
SetLocal EnableDelayedExpansion
FOR %%i IN ("XXX\lib\*.jar") DO SET CLASSPATH=!CLASSPATH!;%%~fsi
echo %CLASSPATH%
EndLocal
[/code:1]

第一句:启用变量延迟;
第二句:循环将.jar文件加入,并以短路径的形式加入;
比如:C:\Program Files\lib\XXX.jar
变为:C:\Progra~1\lib\XXX.jar
第三句:显示设置后的CLASSPATH值;
第四句:还原系统环境设置

注意:第二句的!CLASSPATH! 与 %%~fsi 的写法,特别是!CLASSPATH!而不是%CLASSPATH%

如果是想以相对径的加入到CLASSPATH的话,就直接用
[code:1]
FOR %%i IN ("./lib/*.jar") DO SET CLASSPATH=!CLASSPATH!;%%i
[/code:1]
即可。

问题:我不知道以相对路径后,长文件名也可以自动以短文件名来表示的方法:(
评论
huangpengxiao 2007-03-20
tomcat 里似乎有类似写法?
alex 2007-03-20
呵呵,ant用的比较方便。不过有时候应急bat还是挺不错的.
抛出异常的爱 2007-03-19
以前都是用ant 作....
YuLimin
  • 浏览: 581433 次
  • 性别: Icon_minigender_1
  • 来自: 福建莆田@广州
  • 详细资料
搜索本博客
我的相册
7b3cc362-5ffb-3f8e-bf39-9e153e30ca74-thumb
力拔千斤
共 146 张
存档
最新评论