如果我的CLASSPATH变量为空,我的Java代码是如何编译的?

时间:2017-05-08 18:24:21

标签: java classpath

我知道$CLASSPATH包含一个路径列表,其中Java编译器查找jar文件以使用它们的类。

当我输入:echo $CLASSPATH时,我得到一个空行,意味着CLASSPATH为空。

现在,我编写了以下代码:

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
    ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("Hello");
        System.out.println(arrayList);        
    }
}

并使用以下命令编译它:

javac Main.java

文件编译成功。如果CLASSPATH为空,那么java编译器如何找到类java.util.ArrayList

1 个答案:

答案 0 :(得分:2)

来自Oracle文档:

  

CLASSPATH变量是一种告诉应用程序的方法,包括   JDK工具,在哪里查找用户类。 (属于的类别   JRE,JDK平台和扩展应该通过其他来定义   意味着,例如引导类路径或扩展目录。)

因此,classpath实际上是用户类,而ArrayList是JDK的一部分。另外:

  

类路径的默认值是&#34;。&#34;,表示只有   搜索当前目录

有关完整说明,请查看此处:java paths