2014-01-23 55 views
0

我在我的電腦中安裝了JDK7。我只是喜歡指定的路徑:沒有設置CLASSPATH變量爲什麼程序可以運行

enter image description here

我沒有設置CLASSPATH。

我所著一個測試程序,這樣的程序:

import java.io.File; 

public class Hello_1 { 
    public static void main(String[] args) { 
     System.out.println(File.separator); 
    } 
} 

我遵守它,拼命地跑它這樣:

enter image description here

根據結果,我們可以看到,它沒沒有任何錯誤,我很困惑。我沒有設置CLASSPATH,根據ORACLE DOC,它說:

類路徑的默認值是,這意味着只有 搜索當前目錄「」指定CLASSPATH 變量或-cp命令行開關將覆蓋此值。

如果我沒有設置CLASSPATH變量,默認的類路徑是「。」,所以當我編譯Hello_1.java時它只會在當前目錄下搜索java.io.File,沒有關於java的東西。 io.File,所以會拋出異常。但爲什麼它運作良好?

+1

Java找到它的核心庫(rt.jar)而不管設置的類路徑。確實我從來沒有設置CLASSPATH,我更喜歡每個應用程序都有適當的-cp,如果需要的話 –

+0

我安裝了JDK7我在c:\ program files \ java中找到有兩個rt.jar,一個放在C:\ Program Files \ Java \ jdk1.7.0_45 \ jre \ lib,其他文件放在C:\ Program Files \ Java \ jre7 \ lib中,爲此,使用哪個javac.exe或java.exe如何決定? –

回答

2

classpath用於搜索自己的類,但內置類庫可自動使用,無需添加到類路徑中。因此在默認的類路徑(當前目錄)上找到Hello_1,在內置的類庫中找到java.io.File

0

您已將PATH變量中的JDK bin路徑。所以現在你的操作系統知道java/javac作爲命令,因此你可以運行你的代碼。如果源代碼或庫位於當前目錄以外的其他目錄中,則類路徑會顯示在圖片中。

相關問題