国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

JAVA基礎:Java 啟動器如何查找類

2019-11-18 11:02:07
字體:
供稿:網(wǎng)友

    java 啟動器 java 將初始化 Java 虛擬機。虛擬機隨即按以下順序搜索和加載類:

    自舉類 - 構(gòu)成 Java 平臺的類,包括 rt.jar 和 i18n.jar 中的類。

    擴展類 - 使用 Java 擴展機制的類。它們被捆綁為 .jar 文件,位于擴展目錄中。

    用戶類 - 開發(fā)人員和第三方定義的類,不使用擴展機制。在命令行上使用 -classpath 選項(常用方法)或使用 CLASSPATH 環(huán)境變量可識別這些類的位置(參見設置 Windows 或 Solaris 的 Classpath)。

    實際上,這三個搜索路徑將被連為一個簡單的類路徑。這有點象以前使用的“單級”類路徑,但現(xiàn)在的模型有一些重要差別:

    偶然“隱藏”或省略自舉類相對困難一些。

    通常只需指定用戶類的位置。系統(tǒng)將“自動”查找自舉類和擴展類。

    工具類現(xiàn)在位于獨立的歸檔中 (tools.jar)。只有當它包含在用戶類路徑中時才可用(稍后會有解釋)。

    Java 啟動器如何查找自舉類

    自舉類是實現(xiàn) Java 1.2 平臺的類。自舉類在 /jdk1.2/jre/lib 中的 rt.jar 和 i18n.jar 歸檔中。這些歸檔由存儲在 sun.boot.class.path 系統(tǒng)屬性中的自舉類路徑值指定。該系統(tǒng)屬性僅供引用,不應直接修改。

    需要重新定義自舉類路徑的可能性較小。極少數(shù)情況下需要使用另一組核心類時,非標準選項 -Xbootclasspath 答應重新定義自舉類路徑。

    注重:實現(xiàn) JDK 開發(fā)工具的類與自舉類在不同歸檔中。工具歸檔為 /jdk1.2/lib/tools.jar.調(diào)用啟動器時,開發(fā)工具將該歸檔添加到用戶類路徑中。然而,這個擴大的用戶類路徑僅用于執(zhí)行工具。處理源代碼的工具 javac 和 javadoc 將使用初始類路徑,而不是擴大后的類路徑(有關(guān)具體信息,參見下面的 Javac 和 Javadoc 如何查找類)。

    Java 啟動器如何查找擴展類

   擴展類是擴展 Java 平臺的類。擴展目錄中的每個 .jar 文件即被認為是擴展,且都使用 Java 擴展框架加載。我們不提供改變擴展目錄位置的選項。

    Java 啟動器如何查找用戶類

    用戶類是在 Java 平臺上構(gòu)建的類。查找用戶類時,啟動器需要使用用戶類路徑,它是一張目錄、JAR 歸檔和包含類文件的 Zip 歸檔的列表。

    類文件有一個反映類全限定名的子路徑名。例如,假如類 com.mypackage.MyClass 存儲在 /myclasses 下,則 /myclasses 一定位于用戶類路徑中,且類文件的完全路徑一定為 /myclasses/com/mypackage/MyClass.class.假如類存儲在名為 myclasses.jar 的歸檔中,則 myclasses.jar 一定位于用戶類路徑中,且類文件一定作為 com/mypackage/MyClass.class 存儲在歸檔中。

    在 Solaris 中,我們用字符串指定用戶類路徑,而用冒號 (:) 分隔類路徑項。java 啟動器將用戶類路徑字符串放置在 java.class.path 系統(tǒng)屬性中。該值可能的源為:

    缺省值“?!币馕吨脩纛愇募钱斍澳夸浿械乃蓄愇募偃缡窃诎校瑒t為當前目錄下的)。

    CLASSPATH 環(huán)境變量的值,它覆蓋缺省值。

    命令行選項 -cp 或 -classpath 的值,它覆蓋缺省值和 CLASSPATH 值。

    -jar 選項指定的 JAR 歸檔,它覆蓋所有其它值。假如使用該選項,則所有用戶類都來自指定的歸檔。

    Java 啟動器如何查找 JAR-CLASS-PATH 類

    JAR 文件通常包含一個“清單” - 該文件列出 JAR 的內(nèi)容。清單可以定義 JAR-CLASS-PATH ,而后者進一步擴展類路徑(僅當從該 JAR 中加載類時)。查找 JAR-CLASS-PATH 訪問的類時將按以下順序進行:

    通常,查找 JAR-CLASS-PATH 項引用的類時,即將其當作 JAR 文件的一部分。出現(xiàn)在 JAR-class-path 中的 JAR 文件將在 JAR-CLASS-PATH 前面的類路徑項之后及 JAR-CLASS-PATH 后面的類路徑項之前進行搜索。

    然而,假如 JAR-CLASS-PATH 指向一個已搜索過的 JAR 文件(例如擴展或在類路徑前面列出的 JAR 文件),則不再搜索該 JAR 文件(這種優(yōu)化方式提高了效率,防止了循環(huán)搜索)。這樣的 JAR 文件將在它出現(xiàn)的地方(類路徑中更靠前的地方)進行搜索。

    假如 JAR 文件作為擴展安裝在 jdk 的 ext 子目錄中,則忽略它所定義的 JAR-CLASS-PATH.我們假定擴展所需的所有類都是 JDK 的一部分或已作為擴展安裝。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 松桃| 芦山县| 都江堰市| 洛川县| 通河县| 崇明县| 宜昌市| 武汉市| 博乐市| 淮阳县| 梧州市| 陇南市| 山丹县| 河东区| 商水县| 岚皋县| 吕梁市| 鸡东县| 页游| 斗六市| 永川市| 双鸭山市| 裕民县| 江都市| 深水埗区| 巩留县| 迁西县| 台东县| 张家川| 阿巴嘎旗| 北流市| 错那县| 曲水县| 林芝县| 沙湾县| 横峰县| 商河县| 苍梧县| 和政县| 彭阳县| 东光县|