天天看點

将某一目錄下所有的jar檔案都加入到CLASSPATH當中的簡便寫法

<a href="http://yulimin.javaeye.com/blog/60385">将某一目錄下所有的jar檔案都加入到classpath當中的簡便寫法</a>

引用: http://www.javaeye.com/topic/244?page=2 中将某一目錄下所有的jar檔案都加入到classpath的寫法,比較長:)

quake wang 寫道

代碼

for %%i in ("%hibern8ide%/*.jar") do call "setclasspath.bat" %%i   

setclasspath.bat:

set _classpathcomponent=%1  

:argcheck   

if %2a==a goto gotallargs   

shift   

set _classpathcomponent=%_classpathcomponent% %1  

goto argcheck   

:gotallargs   

set classpath=%_classpathcomponent%;%classpath%   

簡便寫法如下:

setlocal enabledelayedexpansion   

for %%i in ("xxx/lib/*.jar") do set classpath=!classpath!;%%~fsi   

echo %classpath%   

endlocal   

第一句:啟用變量延遲;

第二句:循環将.jar檔案加入,并以短路徑的形式加入;

比如:c:/program files/lib/xxx.jar

變為:c:/progra~1/lib/xxx.jar

第三句:顯示設定後的classpath值;

第四句:還原系統環境設定

注意:第二句的!classpath! 與 %%~fsi 的寫法,特别是!classpath!而不是%classpath%

如果是想以相對徑的加入到classpath的話,就直接用

for %%i in ("./lib/*.jar") do set classpath=!classpath!;%%i   

即可。

問題:我不知道以相對路徑後,長檔案名也可以自動以短檔案名來表示的方法:(