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

时间:2022-05-26 14:32:07

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

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

 

Quake Wang 写道
代码
  1. FOR %%i IN ("%HIBERN8IDE%/*.jar") DO CALL "setclasspath.bat" %%i   

 

setclasspath.bat:

代码
  1. SET _CLASSPATHCOMPONENT=%1  
  2. :argCheck   
  3. IF %2a==a GOTO gotAllArgs   
  4. SHIFT   
  5. SET _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1  
  6. GOTO argCheck   
  7. :gotAllArgs   
  8. SET CLASSPATH=%_CLASSPATHCOMPONENT%;%CLASSPATH%   

 

简便写法如下:

 

代码
  1. SetLocal EnableDelayedExpansion   
  2. FOR %%i IN ("XXX/lib/*.jar") DO SET CLASSPATH=!CLASSPATH!;%%~fsi   
  3. echo %CLASSPATH%   
  4. EndLocal   

 

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

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

如果是想以相对径的加入到CLASSPATH的话,就直接用

代码
  1. FOR %%i IN ("./lib/*.jar") DO SET CLASSPATH=!CLASSPATH!;%%i   

即可。

 

问题:我不知道以相对路径后,长文件名也可以自动以短文件名来表示的方法:(