2011-05-02 200 views

回答

5

:用於分隔類路徑條目。

因此.:soy-20100708.jar的意思是「在當前目錄中搜索和內部soy-20100708.jar」。

第二個變量「:大豆20100708.jar」沒有特殊的意義(這是格式不正確)。它可能以某種方式解釋,但我不知道有任何特殊的含義。

你能後的jar文件的內容?它包含哪些文件以及哪些目錄?

+0

@Jaochim:它是從閉合模板教程,這裏是與所有.jars壓縮鏈接:http://closure-templates.googlecode.com/ files/closure-templates-for-java-latest.zip。 – Blub 2011-05-02 12:20:28

+1

@Blub:';'在Windows上使用,因爲':'已經用在路徑中(用於指示驅動器)。類Unix的平臺使用':'。 – 2011-05-02 12:21:12

+0

另外:'soy-20100708.jar'中沒有'HelloWorld.class',所以它必須在當前目錄中,這意味着你需要在類路徑中包含'.'。 – 2011-05-02 12:21:59

1

「。」意味着當前目錄也被搜索到,「:」是你的路徑分隔符。如this website所述,分隔符是平臺相關的:

CLASSPATH分隔符字符是平臺相關的。您也可以使用系統屬性 來發現它。它通常會是; 或:。您必須將當前目錄放置在 CLASSPATH上。

1

冒號「:」是unix環境中的路徑分隔符,而在Windows上是分號「;」分離路徑。即你可以這樣寫:

java -classpath a.jar:b.jar OR java -classpath a.jar;b.jar 

然後它加載兩個罐子到路徑。 期間「。」週期代表當前目錄。請注意,目錄僅搜索* .class文件而不是包。

開始的版本「:」不是由文件覆蓋(據我所知),所以它僅僅是意外的作品(pobably將當前目錄下的類路徑aswel)

編輯: 我剛剛發現,該dir/*發現在JAVA 6 dir中的所有罐子6

+0

':'是Unix系統上的標準路徑分隔符,就像';'在Windows系統上一樣。使用與您所在系統相關的軟件。 – 2011-10-18 16:21:56