classpath環境變數每次設定都出錯?

iteye_401發表於2010-08-10

設定Classpath的目的,在於告訴Java執行環境,在哪些目錄下可以找到您所要執行的Java程式

Java執行環境本身就是一個平臺,執行於這個平臺上的程式是已編譯完成的Java程式(後面會介紹到Java程式編譯完成之後,會以.class檔案存在)。如果將Java執行環境比喻為作業系統,如果設定Path變數是為了讓作業系統找到指定的工具程式(以Windows來說就是找到.exe檔案),則設定Classpath的目的就是讓Java執行環境找到指定的Java程式(也就是.class檔案)。

  有幾個方法可以設定Classpath,最簡單的方法是在系統變數中新增Classpath環境變數。在圖2-9中的“系統變數”下單擊“新建”按鈕,在“變數名”文字框中輸入Classpath,在“變數值”文字框中輸入Java類檔案的位置。例如可以輸入“.;C:/Program Files/Java/jdk1.5.0_06/lib/tools.jar; C:/Program Files/Java/jdk1.5.0_06/lib/rt.jar”(jar檔案是zip壓縮格式,其中包括.class檔案和jar中的Classpath設定),每一路徑中間必須以;作為分隔。

  事實上JDK 5.0預設就會到當前工作目錄(上面的.設定),以及JDK的lib目錄(這裡假設是C:/Program Files/Java/jdk1.5.0_06/lib)中尋找Java程式。所以如果Java程式是在這兩個目錄中,則不必設定Classpath變數也可以找得到,將來如果Java程式不是放置在這兩個目錄時,則可以按上述設定Classpath。

對於JAVA的環境變數可以通過java -version驗證是否設定成功。

以上為引用網上的資料


以下為自己的總結

需要特別注意的幾點:

1、系統變數

2、CLASSPATH不區分大小寫(無論是寫成Classpath、classpath甚至是classPath都可以)

3、注意";"

4、設定完畢以後,必須重啟cmd,否則無效(這一條最容易疏忽,經常開著cmd,改半天也沒效果)

5、假如Generator.class檔案存放在F:/class資料夾下的某個package (edu.lehigh.swat.bench.uba)下,絕對路徑為F:/class/edu/ehigh/swat/bench/uba。現在我向classpath中新增F:/class,

問:cmd下如何通過環境變數訪問Generator.class?

答:java edu.lehigh.swat.bench.uba.Generator

(java edu/ehigh/swat/bench/uba/Generator 報錯)

相關文章