这是一个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
请解释运营商“:”和“。”的使用。
答案 0 :(得分:18)
:
是Java类路径中条目的分隔符。 .
表示“当前目录”。因此,类路径com/KitJar.jar:.
意味着在两个位置查找Java类文件:com/KitJar.jar
和当前目录。
答案 1 :(得分:6)
接受的答案是正确的,但它可能已经提到类路径分隔符实际上是平台相关的,如注释中所指出的那样。
有关详细信息,包括类路径通配符的说明以及有关如何清除CLASSPATH
环境变量的详细说明,请参阅Setting the Class Path技术说明(和/或{{3}对于* nix版本。)