有這個in the documentation沒有提及,但沒有:
調用它時,我得到一個ClassNotFoundException。「java -classpath。:」是什麼意思?
全線:
java -classpath .:soy-20100708.jar HelloWorld
這工作太,但...
java -classpath :soy-20100708.jar HelloWorld
有這個in the documentation沒有提及,但沒有:
調用它時,我得到一個ClassNotFoundException。「java -classpath。:」是什麼意思?
全線:
java -classpath .:soy-20100708.jar HelloWorld
這工作太,但...
java -classpath :soy-20100708.jar HelloWorld
:
用於分隔類路徑條目。
因此.:soy-20100708.jar
的意思是「在當前目錄中搜索和內部soy-20100708.jar
」。
第二個變量「:大豆20100708.jar」沒有特殊的意義(這是格式不正確)。它可能以某種方式解釋,但我不知道有任何特殊的含義。
你能後的jar
文件的內容?它包含哪些文件以及哪些目錄?
「。」意味着當前目錄也被搜索到,「:」是你的路徑分隔符。如this website所述,分隔符是平臺相關的:
CLASSPATH分隔符字符是平臺相關的。您也可以使用系統屬性 來發現它。它通常會是; 或:。您必須將當前目錄放置在 CLASSPATH上。
冒號「:」是unix環境中的路徑分隔符,而在Windows上是分號「;」分離路徑。即你可以這樣寫:
java -classpath a.jar:b.jar OR java -classpath a.jar;b.jar
然後它加載兩個罐子到路徑。 期間「。」週期代表當前目錄。請注意,目錄僅搜索* .class文件而不是包。
開始的版本「:」不是由文件覆蓋(據我所知),所以它僅僅是意外的作品(pobably將當前目錄下的類路徑aswel)
編輯: 我剛剛發現,該dir/*發現在JAVA 6 dir中的所有罐子6
':'是Unix系統上的標準路徑分隔符,就像';'在Windows系統上一樣。使用與您所在系統相關的軟件。 – 2011-10-18 16:21:56
@Jaochim:它是從閉合模板教程,這裏是與所有.jars壓縮鏈接:http://closure-templates.googlecode.com/ files/closure-templates-for-java-latest.zip。 – Blub 2011-05-02 12:20:28
@Blub:';'在Windows上使用,因爲':'已經用在路徑中(用於指示驅動器)。類Unix的平臺使用':'。 – 2011-05-02 12:21:12
另外:'soy-20100708.jar'中沒有'HelloWorld.class',所以它必須在當前目錄中,這意味着你需要在類路徑中包含'.'。 – 2011-05-02 12:21:59