1)classpath即是類路徑的意思,后綴為.java的源程序編譯成功之后會生成后綴為.class的類文件。classpath與import關鍵字是相關的,程序編譯的時候,遇到import關鍵字,編譯器就會到classpath參數對應的路徑中去尋找對應的.class類文件,將其倒入。classpath的一個示例如下:
classpath=“.;/usr/local/jdk/lib;/home/hadoop/DoubleArrayWritable.jar”
“.”表示當前目錄,就是當前的工作目錄
其中,DoubleArrayWritable.jar是我自己寫的類。編譯程序時,編譯器就是在這些目錄中搜索import倒入的類文件。其實,classpath還對應着java的另外一種機制,就是包名。比如以下的一個導入語句:
import matrix.writable.ArrayWritable
編譯器解析這條import語句的時候會將“.”解析為斜杠“/”表示路徑,以上這句話的意思就是在classpath對應的某個路徑下,搜索“matrix/writable/ArrayWritable”類文件。但是,當我們使用IDE,比如eclipse的時候就不用設置系統的classpath路徑,為什么也可以編譯成功呢?因為在eclipse中添加了依賴的jar包之后,eclipse會自動生成一個classpath文件。
2)path的作用就是配置jdk的bin目錄,這個目錄下包含了一些命令,例如javac java javadoc,配置完成之后可以在任意目錄下使用這些命令,而不必每次切換到bin目錄下。