2008-12-11 155 views
2

在Unix系統中,很容易通過使用find編譯CLASSPATH:編譯CLASSPATH在Windows批處理文件

LIBDIR=`find lib/ -name \*.jar` 
for DIR in $LIBDIR: 
do 
    CLASSPATH="$CLASSPATH:$DIR" 
done 

java -classpath $CLASSPATH com.example.MyClass 

什麼是在Windows批處理文件的aquivalent?

+1

爲什麼不使用構建工具如Ant或Maven?他們可以以獨立於平臺的方式編譯類路徑條目。 – 2008-12-11 13:37:48

回答

4

同樣可以從Windows XP實現上:

setlocal ENABLEDELAYEDEXPANSION 
FOR /R .\lib %%G IN (*.jar) DO set CLASSPATH=!CLASSPATH!;%%G 

java -classpath %CLASSPATH% com.example.MyClass 
+0

這在Windows XP中不起作用,除非你先運行cmd/v – kgiannakakis 2008-12-11 13:01:31

1

只有這樣,才能做到這一點是使用延遲的環境變量擴展。你可以通過運行

cmd /v 

然後你可以運行:

set var=. 
FOR /r %%d IN (*.jar) DO SET var=!var!;%%d 
set CLASSPATH=%var%