使用":"和"." 在使用类路径声明调用java时

and*_*and 2 java scjp classpath

这是一个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);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下目录结构:

test
   |--UseKit.class
   |
   com
     |--KitJar.jar
Run Code Online (Sandbox Code Playgroud)

当前目录是test,文件pkg/Kit.classKitJar.jar

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

java -classpath com/KitJar.jar:. UseKit a b c 
Run Code Online (Sandbox Code Playgroud)

请解释运营商":"和"."的使用.

mip*_*adi 18

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

  • 冒号`:`顺便说一下linux/unix.在Windows中使用分号";". (9认同)
  • ":"对于*nix机器是正确的; 它的 ";" 对于Windows. (3认同)
  • @Asap当然可以,但是告诉我你是如何在命令行上做到的?:) (3认同)

Pas*_*ent 6

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

有关更多信息(包括类路径通配符的说明)以及有关如何清理CLASSPATH环境变量的详细说明,请参阅设置类路径技术说明(和/或设置*nix版本的类路径).