2017-05-08 39 views
1

我知道$CLASSPATH包含了一個Java編譯器查找jar文件以使用它們的類的路徑列表。如果我的CLASSPATH變量爲空,我的Java代碼是如何編譯的?

當我輸入: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

從Oracle文檔:

CLASSPATH變量就是告訴應用程序,包括 JDK工具,到哪裏尋找用戶類的一種方式。 (的類是 的JRE,JDK平臺部,和擴展應該通過其他 來定義,如引導類路徑或擴展目錄。)

所以,classpath實際上是用戶類ArrayList是JDK的一部分。另外:

類路徑的默認值是,這意味着只有 當前目錄搜索

對於充分說明這裏看看。「」:java paths

+0

好的。我如何看到bootstrap類路徑? – CrazySynthax

+1

@CrazySynthax我想你可以使用'java''-Xbootclasspath'選項,如果你想改變它([X選項](https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/) optionX.html))...但是什麼?默認情況下通常很好...找出哪些是默認值 - 我想你可以谷歌一點點... – Plirkee

相關問題