使用“:”和“。”在使用类路径声明调用java时

时间:2009-12-13 16:40:36

标签: java classpath scjp

这是一个scjp模拟考试问题。

假设我有以下两个文件:

package pkg;

public class Kit {
    public String glueIt (String a, String b) {return a+b;}
}

import pkg.*;

class UseKit {
    public static void main(String[]args) {
        String s = new Kit().glueIt(args[1],args[2]);
        System.out.println(s);
    }
}

以下目录结构:

test
   |--UseKit.class
   |
   com
     |--KitJar.jar

当前目录为test,文件pkg/Kit.class位于KitJar.jar

根据答案,产生输出b c的java调用是

java -classpath com/KitJar.jar:. UseKit a b c 

请解释运营商“:”和“。”的使用。

2 个答案:

答案 0 :(得分:18)

:是Java类路径中条目的分隔符。 .表示“当前目录”。因此,类路径com/KitJar.jar:.意味着在两个位置查找Java类文件:com/KitJar.jar和当前目录。

答案 1 :(得分:6)

接受的答案是正确的,但它可能已经提到类路径分隔符实际上是平台相关的,如注释中所指出的那样。

有关详细信息,包括类路径通配符的说明以及有关如何清除CLASSPATH环境变量的详细说明,请参阅Setting the Class Path技术说明(和/或{{3}对于* nix版本。)