Java執(zhí)行環(huán)境本身就是一個(gè)平臺(tái),執(zhí)行于這個(gè)平臺(tái)上的程序是已編譯完成的Java程序(Java程序編譯完成之后,會(huì)以.class文件存在)。如果將Java執(zhí)行環(huán)境比喻為操作系統(tǒng),如果設(shè)置Path變量是為了讓操作系統(tǒng)找到指定的工具程序(以Windows來說就是找到.exe文件),則設(shè)置Classpath的目的就是讓Java執(zhí)行環(huán)境找到指定的Java程序(也就是.class文件)。
設(shè)置classpath的時(shí)候需要注意,路徑中不要包含到包的名字部分,因?yàn)榘ㄔ趙indows操作系統(tǒng)下)對(duì)應(yīng)到目錄結(jié)構(gòu),例如包 Package com.pwcrab 其實(shí)就是有一個(gè)com\pwcrab的相對(duì)路徑存在。如果該包在C:\java\MyLib 下,完整的路徑是C:\java\MyLib\com\pwcrab ,但是設(shè)置CLASSPATH時(shí),務(wù)必不要包含包部分的路徑。還有一點(diǎn)請(qǐng)注意,CLASSPATH中的 “.”表示是在當(dāng)前目錄下先尋找。
但是,在使用JAR文件時(shí),有一些例外,必須在類路徑中將JAR文件的實(shí)際名稱寫的完整清楚,而不僅僅是他們的目錄位置,例如“.;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設(shè)置),每一路徑中間必須以;作為分隔。
Tips:package中的*.java也要記得編譯。 好像我的主要問題是這個(gè),折騰了一個(gè)晚上睡醒一覺解決了……