2012-01-29 143 views
38

從命令行,我該如何設置Java CLASSPATH選項以指向包含多個jar文件的一個或多個目錄?有遞歸目錄和子目錄支持的通配符嗎?設置類路徑文件夾

(我的JAR文件在幾個子目錄排序)

+1

頂層目錄的路徑應該足夠了。 – kosa 2012-01-29 12:28:12

+6

Dup的http://stackoverflow.com/questions/219585/setting-multiple-jars-in-java-classpath – Vadzim 2015-06-10 13:16:37

回答

54

如果您使用的是Java 6或更高版本,你可以使用這種形式的通配符:

java -classpath ".;c:\mylibs\*;c:\extlibs\*" MyApp 

如果你想添加所有子目錄:LIB \ A \ LIB \ b \,LIB \ C \,沒有機制,除了這一點:

java -classpath ".;c:\lib\a\*;c:\lib\b\*;c:\lib\c\*" MyApp 

有沒有像lib\*\*lib\**瓦特你想完成的工作類型的ildcard。

+14

這不是我的意見。它從這裏事實http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html Quote:'子目錄不是遞歸搜索。例如,foo/*僅在foo中查找JAR文件,而不是在foo/bar,foo/baz等中。「 – msi 2012-01-29 12:56:45

+9

並且如果您想知道爲什麼路徑有」。「在開始時,要確保通過env變量等在系統中設置的現有類路徑不會被覆蓋。 – 2012-01-29 14:19:23

+6

@msi對不起,我的目的是感謝您的回覆。 – MJM 2012-01-30 06:20:50

6

命令作爲

java -classpath ".;C:\MyLibs\a\*;D:\MyLibs\b\*" <your-class-name> 

上述命令將設置提到路徑用於執行命名的TestClass類只有一次類路徑。

如果您要執行一個以上的類,那麼你可以按照這個

set classpath=".;C:\MyLibs\a\*;D:\MyLibs\b\*" 

在這之後,你可以通過簡單地鍵入

java <your-class-name> 

以上,只要你想只執行儘可能多的參加命令將工作,直到您關閉命令提示符。但是在關閉命令提示符後,如果您將重新打開命令提示符並嘗試執行某些類,則必須藉助上述任何一種方法再次設置類路徑(第一種執行一個類和第二種方法的方法一個如果你想設置的CLASSPTH只有一次,以便它可以爲每次工作,然後做如下

1. Right click on "My Computer" icon 
2. Go to the "properties" 
3. Go to the "Advanced System Settings" or "Advance Settings" 
4. Go to the "Environment Variable" 
5. Create a new variable at the user variable by giving the information as below 
    a. Variable Name-  classpath 
    b. Variable Value- .;C:\program files\jdk 1.6.0\bin;C:\MyLibs\a\';C:\MyLibs\b\* 
6.Apply this and you are done. 

記住這將工作每一次執行多個類)

。您不需要一次又一次明確設置類路徑。

注意:如果您想在某一天後添加一些其他庫,請不要忘記在「環境變量」的「變量值」末尾添加一個分號,然後鍵入路徑你的新庫在分號後面。因爲分號分隔不同目錄的路徑。

希望這會幫助你。