設置類路徑
結構
可通過對 JDK 工具使用 -classpath 選項(首選方法)或設置 CLASSPATH 環境變量來設置類路徑。
C:> jdkTool -classpath path1;path2... C:> set CLASSPATH=path1;path2...
每個 path 以文件名或目錄結尾,該文件名或目錄取決於將類路徑設置成什麼:
對於包含 .class 文件的 .zip 或 .jar 文件,路徑以 .zip 或 .jar 文件名結尾。
對於未命名包中的 .class 文件,路徑以包含 .class 文件的目錄結尾。
對於已命名包中的 .class 文件,路徑以包含“root”包(完整包名中的第一個包)的目錄結尾。
用分號來分隔多個項目。使用 set 命令時,需要省略等號兩邊的空格(=)。其中 jdkTool 可以為 Java、javac、javadoc,等等。有關具體列表,參見 JDK 開發工具。
說明
類路徑告訴 Java 應用程序去哪裡查找第三方和自定義類 -- 即不是 Java 擴展或 Java 平台一部分的類。在 JDK 1.2 中,JVM 和其他 JDK 工具通過依次搜索平台庫、庫擴展和類路徑來查找類(有關搜索策略的具體信息,參見如何查找類)。
多數應用程序的類庫都會充分利用擴展機制。因此,只有想要加載某個類庫 (a) 未位於當前目錄或其分枝包中 且 (b) 未位於擴展機制所指定的位置時,才需設置類路徑。
假如用戶是從舊版本 JDK 升級而來,則啟動設置可能包括不再需要的 CLASSPATH 設置。這時應該刪除任何非應用程序特定的設置。有些使用 Java 虛擬機的第三方應用程序可能修改 CLASSPATH 環境變量以包括它們使用的類庫。這種設置可以保留。
可通過在調用 JVM 或其他 JDK 工具時使用 Java 工具的 -classpath 選項改變類路徑(例如: java -classpath ...)。這是改變類路徑的首選方法。還可通過使用 CLASSPATH 環境變量改變類路徑。
注重:JDK 1.2 缺省類路徑是當前目錄。設置 CLASSPATH 變量或使用 -classpath 命令行開關將覆蓋缺省值,因而假如想要在搜索路徑中包括當前目錄,則必須在新設置中包括“.”。
類可以存儲在目錄(文件夾)或歸檔文件(例如 classes.zip 或 classes.jar)中。有關歸檔文件的具體信息和類路徑的工作原理,參見本文檔最後的理解類路徑和包名。
重要說明:JDK 舊版本在缺省類路徑中還包括 /classes 項。該目錄僅供 JDK 使用,且不用於應用程序類。應用程序類應該放置在 JDK 外部的目錄。這樣,安裝新 JDK 時不必需要重新安裝應用程序庫。為了與舊版本的兼容性,使用 /classes 目錄作為類庫的應用程序在當前版本中仍能運行,但不能保證在以後的版本中它們還能運行。
使用 Java 工具的 -classpath 選項
Java 工具 java、jdb、javac 和 javah 具有 -classpath 選項,在工具運行時它將取代缺省類路徑或由 CLASSPATH 環境變量所指定的類路徑。這是改變類路徑設置的推薦方法,因為這樣每個應用程序可具有它所需的類路徑而又不會干擾其他應用程序。
運行時工具 java 和 jdb 還具有 -cp 選項。該選項是 -classpath 的縮寫。
對於非常非凡的情況,java 和 javac 都具有開關,使得可改變它們使用的路徑以查找它們自己的類庫。但是,絕大多數用戶從來都不會用到這些開關。
使用 CLASSPATH 環境變量
如前一節中所述,一般用戶將想要使用 -classpath 命令行選項。本節將介紹如何設置 CLASSPATH 環境變量或清除以前安裝遺留下的設置。
設置 CLASSPATH
在 DOS 提示符下,可用 set 命令修改 CLASSPATH 環境變量。其格式為:
set CLASSPATH=path1;path2 ...
路徑應該以指定驅動器的字母開頭,例如 C:...。這樣,在偶然切換到不同驅動器時仍可找到類(例如,假如路徑項以 ... 開頭,並且當前位於驅動器 D: 上,則所需的類將在 D: 而不是 C: 驅動器上找)。
清除 CLASSPATH
假如 CLASSPATH 環境變量被設置成不正確的值,或啟動文件或腳本程序設置了不正確路徑,則可通過使用下列命令清除 CLASSPATH:
C:> set CLASSPATH=
該命令僅清除當前會話的 CLASSPATH。要確保在以後的會話中具有正確的 CLASSPATH 設置,則應該刪除或修改啟動設置。
更改啟動設置
假如在系統啟動時設置 CLASSPATH 變量,則查找它的位置取決於所使用的操作系統:
操作系統 方法
Windows 98 和 Windows 95 檢查 autoexec.bat 文件中的 set 命令。