程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 設置類路徑

設置類路徑

編輯:關於JAVA

結構

可通過對JDK工具使用-classpath選項(首選方法)或設置CLASSPATH環境變量來設置類路徑。

C:>jdkTool-classpathpath1;path2...

C:>setCLASSPATH=path1;path2...

每個path以文件名或目錄結尾,該文件名或目錄取決於將類路徑設置成什麼:

對於包含.class文件的.zip或.jar文件,路徑以.zip或.jar文件名結尾。

對於未命名包中的.class文件,路徑以包含.class文件的目錄結尾。

對於已命名包中的.class文件,路徑以包含“root”包(完整包名中的第一個包)的目錄結尾。

用分號來分隔多個項目。使用set命令時,需要省略等號兩邊的空格(=)。其中jdkTool可以為java、javac、javadoc,等等。有關詳細列表,參見JDK開發工具。

說明

類路徑告訴Java應用程序去哪裡查找第三方和自定義類--即不是Java擴展或Java平台一部分的類。在JDK1.2中,JVM和其他JDK工具通過依次搜索平台庫、庫擴展和類路徑來查找類(有關搜索策略的詳細信息,參見如何查找類)。

多數應用程序的類庫都會充分利用擴展機制。因此,只有想要加載某個類庫(a)未位於當前目錄或其分枝包中且(b)未位於擴展機制所指定的位置時,才需設置類路徑。

如果用戶是從舊版本JDK升級而來,則啟動設置可能包括不再需要的CLASSPATH設置。這時應該刪除任何非應用程序特定的設置。有些使用Java虛擬機的第三方應用程序可能修改CLASSPATH環境變量以包括它們使用的類庫。這種設置可以保留。

可通過在調用JVM或其他JDK工具時使用Java工具的-classpath選項改變類路徑(例如:java-classpath...)。這是改變類路徑的首選方法。還可通過使用CLASSPATH環境變量改變類路徑。

注意:JDK1.2缺省類路徑是當前目錄。設置CLASSPATH變量或使用-classpath命令行開關將覆蓋缺省值,因而如果想要在搜索路徑中包括當前目錄,則必須在新設置中包括“.”。

類可以存儲在目錄(文件夾)或歸檔文件(例如classes.zip或classes.jar)中。有關歸檔文件的詳細信息和類路徑的工作原理,參見本文檔最後的理解類路徑和包名。

重要說明:JDK舊版本在缺省類路徑中還包括<jdk-dir>/classes項。該目錄僅供JDK使用,且不用於應用程序類。應用程序類應該放置在JDK外部的目錄。這樣,安裝新JDK時不必需要重新安裝應用程序庫。為了與舊版本的兼容性,使用<jdk-dir>/classes目錄作為類庫的應用程序在當前版本中仍能運行,但不能保證在以後的版本中它們還能運行。

使用Java工具的-classpath選項

Java工具java、jdb、javac和javah具有-classpath選項,在工具運行時它將取代缺省類路徑或由CLASSPATH環境變量所指定的類路徑。這是改變類路徑設置的推薦方法,因為這樣每個應用程序可具有它所需的類路徑而又不會干擾其他應用程序。

運行時工具java和jdb還具有-cp選項。該選項是-classpath的縮寫。

對於非常特殊的情況,java和javac都具有開關,使得可改變它們使用的路徑以查找它們自己的類庫。但是,絕大多數用戶從來都不會用到這些開關。

使用CLASSPATH環境變量

如前一節中所述,一般用戶將想要使用-classpath命令行選項。本節將介紹如何設置CLASSPATH環境變量或清除以前安裝遺留下的設置。

設置CLASSPATH

在DOS提示符下,可用set命令修改CLASSPATH環境變量。其格式為:

setCLASSPATH=path1;path2...

路徑應該以指定驅動器的字母開頭,例如C:...。這樣,在偶然切換到不同驅動器時仍可找到類(例如,如果路徑項以...開頭,並且當前位於驅動器D:上,則所需的類將在D:而不是C:驅動器上找)。

清除CLASSPATH

如果CLASSPATH環境變量被設置成不正確的值,或啟動文件或腳本程序設置了不正確路徑,則可通過使用下列命令清除CLASSPATH:

C:>setCLASSPATH=

該命令僅清除當前會話的CLASSPATH。要確保在以後的會話中具有正確的CLASSPATH設置,則應該刪除或修改啟動設置。

更改啟動設置

如果在系統啟動時設置CLASSPATH變量,則查找它的位置取決於所使用的操作系統:

操作系統方法

Windows98和

Windows95檢查autoexec.bat文件中的set命令。

WindowsNT啟動“控制面板”,選擇“系統”,單擊“環境”選項卡,並在“用戶變量”部分中,檢查CLASSPATH變量。

理解類路徑和包名

Java類被組織成包,而這些包被映射到文件系統中的目錄。但是與文件系統不同的是,無論何時指定包名,都應指定完整包名--永遠不要僅指定它的一部分。例如,java.awt.Button的包名總是應指定為java.awt。

例如,假定想要Java運行環境在包utility.myapp中查找名為Cool.class的類。如果該目錄的路徑為C:javaMyClassesutilitymyapp,則應該將類路徑設置成包含C:javaMyClasses。

要運行該應用程序,可使用下述JVM命令:

C:> java-classpathC:javaMyClassesutility.myapp.Cool

當該應用程序運行時,JVM使用類路徑設置查找在utility.myapp包中定義的任何其他類。

注意:應在命令中指定完整包名。例如,設置類路徑包含C:javaMyClassesutility並使用命令javamyapp.Cool是不可能的,因為這找不到該類。

(您可能想知道用什麼定義類的包名。答案是:包名是類的一部分,並且不能修改,除非重新編譯該類。)

注意:包規范機制一個有趣的結果是,屬於相同包的多個文件實際上可存在於不同的目錄中。對於每個類,包名都是相同的,但是每個文件的路徑可從類路徑中的不同目錄開始。

文件夾和歸檔文件

當類存儲在目錄(文件夾)中時,例如c:javaMyClassesutilitymyapp,則類路徑項指向包含包名第一個元素的目錄(在這裡為C:javaMyClasses,因為包名是utility.myapp)。

但是當類存儲在歸檔文件(.zip或.jar文件)中時,類路徑項則是該.zip或.jar文件的路徑。例如,要使用位於.jar文件中的類庫,則命令應該類似下述形式:

java-classpathC:javaMyClassesmyclasses.jarutility.myapp.Cool

多重指定

要在目錄C:javaMyClasses和C:javaOtherClasses中查找類文件,則可將類路徑設置為:

java-classpathC:javaMyClasses;C:javaOtherClasses...

注意兩個路徑之間用分號分隔。

指定次序

指定多個類路徑項的次序是相當重要的。Java解釋器將按照目錄在類路徑變量中的次序在各個目錄中查找類。在上例中,Java解釋器首先在目錄C:javaMyClasses中查找需要的類。只有當它在該目錄中沒有找到該類時,解釋器才能到C:javaOtherClasses目錄中查找。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved