2010-03-21 47 views

回答

6

JVM本身支持在類路徑外卡符號。如果/foo/bar是一個包含JAR文件的目錄,您希望將其全部放在類路徑中,則可以在類路徑中包含/foo/bar/*而不是逐個枚舉每個JAR文件。

我不確定這是否足以滿足您的需要,但在適用時非常方便。

+0

但是,這隻在JDK 1.6中實現 – Andrey 2010-03-21 19:15:04

+2

我們歡迎您在現在。 – 2010-03-21 19:17:30

2

恩,這是直接支持,你甚至不需要java的支持。你試過了嗎?

scala -cp '/foo/bar/*' 
0

這個腳本的瀏覽DIR lib遞歸:

import java.io.File 
import java.util.regex.Pattern 

def cp(root: File, lib: File): String = { 
    var s = lib.getAbsolutePath.replaceFirst(
    Pattern.quote(root.getAbsolutePath) + File.separator + "*", "") + 
    File.separator + "*" 
    for (f <- lib.listFiles; if f.isDirectory) 
    s += File.pathSeparator + cp(root, f) 
    s 
} 

例如:

/project 
    lib 
    |__dep 
    |__dep2 
    |__dep3 

您致電:

​​

結果:

/*:lib/*:lib/dep2/*:lib/dep2/dep3/*:lib/dep/*