2011-05-02 144 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