成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用Java啟動器查找類

開發 后端
本文向您介紹Java編程語言中Java啟動器如何查找類的說明,包括Java啟動器對自舉類和擴展類的查找等。

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

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

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

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

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

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

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

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

Java 啟動器如何查找自舉類

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

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

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

Java 啟動器如何查找擴展類

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

Java 啟動器如何查找用戶類

用戶類是在 Java 平臺上構建的類。查找用戶類時,啟動器需要使用用戶類路徑,它是一張目錄、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 系統屬性中。該值可能的源為:

缺省值“.”意味著用戶類文件是當前目錄中的所有類文件(如果是在包中,則為當前目錄下的)。

CLASSPATH 環境變量的值,它覆蓋缺省值。

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

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

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

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

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

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

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

OldJava 啟動器如何查找類

oldjava 啟動器不支持 Java 擴展框架。下列情況下,它提供向后兼容性:

有一個實現 1.1 風格的安全管理器(與 1.2 類加載方法不兼容)的應用程序,或者

正在加載的類已生成,或以與 1.2 類結構不兼容的方式(例如用模糊器)管理。

(有關這些問題的詳細信息,參見 Windows 或 Solaris 的 java 啟動器參考頁。)

oldjava 啟動器在一個類路徑中組合了自舉類和用戶類。用 oldjava 指定類路徑的方法有兩種:

在 CLASSPATH 環境變量中指定用戶類路徑。用戶類路徑加在預定義的自舉類路徑后。

用命令行選項 -cp 或 -classpath 指定完整的類路徑。忽略 CLASSPATH 的值和預定義的自舉類路徑。

組合類路徑存儲在 java.class.path 系統屬性中。

Javac 和 JavaDoc 如何查找類

javac 和 javadoc 工具使用兩種不同方式使用類文件。

象其它 Java 應用程序一樣,javac 和 javadoc 必須加載多種類文件才能運行。

要處理它們操作的源代碼,javac 和 javadoc 必須獲得源代碼中所用對象類型的信息。

用來解析源代碼引用的類文件大部分和用來運行 javac 和 javadoc 的類文件相同,但有重要的一些例外:

javac 和 javadoc 經常解析對與 javac 或 javadoc 的實現無關的類和接口的引用。有關被引用的用戶類和接口的信息可能以類文件、源代碼文件或二者結合起來的形式存在。

tools.jar 中的工具類僅用來運行 javac 和 javadoc。工具類不用來解析源代碼引用,除非 tool.jar 在用戶類路徑中。

程序員可能要用另一種 Java 平臺實現解析自舉類或擴展類引用。利用 -bootclasspath 和 -extdirs 選項,javac 和 javadoc 都可以支持這種操作。使用這些選項不會修改用來運行 javac 或 javadoc 工具本身的類文件集。

如果在類文件和源文件中定義了被引用的類,則 javadoc 通常使用源文件(javadoc 不編譯源文件)。同樣情況下,javac 使用類文件,但會自動重新編譯它認為過期的類文件。自動重新編譯的規則將在 javac 文檔(Windows 或 Solaris)中介紹。

缺省情況下,javac 和 javadoc 在用戶類路徑中搜索類文件和源代碼文件。如果指定了 -sourcepath 選項,則 javac 和 javadoc 僅搜索指定的源文件路徑。

類加載和安全策略

類或接口必須用類加載器加載后才能使用。對特定類加載器的使用確定了與類加載器關聯的安全策略。

程序可通過調用類加載器對象的 loadClass 方法加載類或接口,但通常程序僅通過引用方式進行加載。這樣就將調用內部類加載器,它對擴展類和用戶類應用安全策略。如果未啟用安全策略,則所有類都是“可信任的”。即使啟用了安全策略,也不適用于自舉類。它永遠是“可信任的”。

啟用后,系統和用戶策略文件將對安全策略進行配置。JDK 軟件包括一個系統策略文件,它對擴展類授予“可信任”狀態,并對用戶類設置基本限制。

要啟用或配置安全策略,參見安全功能。

注意:一些 Java 1.1 平臺使用的安全編程技術與 1.2 類加載模型不兼容。為了對已有代碼提供臨時支持,這一版本包括 oldjava 啟動器,它使用 1.1 類加載模型。

【編輯推薦】

  1. Red Hat CEO呼吁甲骨文繼續保持Java開放
  2. 自學Javabean迅速成為Java高手
  3. Java通過JNI調用C語言的方法
  4. 高手Java核心技術學習筆記
  5. 成為Java高手需要注意的25個學習目標
責任編輯:王觀 來源: 賽迪網
相關推薦

2011-10-19 09:56:58

Gnome Pie程序啟動器

2014-08-12 09:54:05

Android定制化啟動器

2012-06-20 10:21:50

Windows Pho

2013-10-10 10:16:18

UbuntuUbuntu 13.0

2010-06-13 09:27:18

Grub安裝Ubunt

2013-04-19 15:22:31

Windows Pho啟動器與選擇器

2013-04-18 11:13:04

Windows Pho啟動器與選擇器BingMapsDir

2013-04-18 13:28:19

Windows Pho啟動器與選擇器

2013-04-18 13:56:09

Windows Pho啟動器與選擇器

2013-11-12 09:39:46

Ubuntu技巧

2013-12-12 10:49:38

MacChromeChrome App

2013-11-25 15:11:21

Linux桌面啟動器

2013-04-18 13:47:43

Windows Pho啟動器與選擇器發送短信

2021-09-02 08:18:11

UlauncherLinux應用啟動器

2024-10-09 15:54:38

布隆過濾器函數

2022-05-12 13:16:57

Chrome OSGoogle更新

2012-11-09 14:33:38

WindowsChrome

2010-08-18 13:58:46

路由器啟動順序

2015-07-28 11:14:42

Hyper-ViSCSI啟動器虛擬化

2013-10-14 09:50:41

Android 4.4谷歌
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩高清成人 | 视频一区中文字幕 | 久久国产精品一区二区三区 | 一本一道久久a久久精品综合蜜臀 | 国产精品久久久久999 | 日韩第一区 | 日韩www| 亚洲免费一区 | 精品一区二区在线观看 | 中文字幕一区二区三区日韩精品 | av网站在线免费观看 | 亚洲精品一区二区在线观看 | 人成在线视频 | 在线免费观看视频黄 | 亚洲一区电影 | 国产在线视频一区二区董小宛性色 | 成人av一区二区在线观看 | 特级a欧美做爰片毛片 | 一本一道久久a久久精品综合 | 久久综合久久综合久久 | 亚洲精品资源 | 日韩欧美在线视频观看 | 亚洲永久精品国产 | 亚洲人成人一区二区在线观看 | 国产成人福利在线 | 亚洲第一天堂无码专区 | 谁有毛片 | 久久精品欧美一区二区三区麻豆 | 日韩免费看视频 | 99久久日韩精品免费热麻豆美女 | av天天澡天天爽天天av | 欧美激情视频一区二区三区免费 | 亚洲欧美日韩一区二区 | 天堂一区二区三区四区 | 综合视频在线 | 午夜精品视频 | 日韩欧美网 | 国产一级黄色网 | 久久69精品久久久久久久电影好 | 日韩欧美视频网站 | av毛片|