日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

3 蘋果開發(fā)人員技術(shù)文檔連載之-系統(tǒng)架構(gòu)( 二 )


Mac OS X內(nèi)的Java應(yīng)用程序環(huán)境有三個主要的構(gòu)件:

·開發(fā)環(huán)境,包括Java編譯器(javac)和Java調(diào)試器(jdb)以及其它工具,包括:javap、javadoc和appletvIEwer等 。這個"命令行"環(huán)境需要一個BSD shell,例如它可以由蘋果的終端應(yīng)用程序來提供 。蘋果還提供了Project Builder應(yīng)用程序,作為這個環(huán)境的前端開發(fā)工具,而且第三方也可以使用他們自己的前端開發(fā)工具 。命令行工具位于JavaVM.framework/Commands子目錄下,并提供符號連接來將其連接到目錄/usr/bin中 。
·運(yùn)行時環(huán)境由Sun公司的高性能Hotspot Java虛擬機(jī)、“just-in-time”(JIT)字節(jié)碼編譯器和基本的Java包所組成 。Java虛擬機(jī)位于/System/Library/Frameworks/JavaVM.framework/Libraries目錄下 。這些基礎(chǔ)包包括 ava.lang、java.util、java.io和java.net;它們都在同一框架下的Classes目錄中的classes.jar歸檔文件中 。
·一個應(yīng)用程序框架含有為建立一個Java應(yīng)用程序所必需的類 。

這些包中較為重要的是java.awt和javax.swing,通常它們被稱為AWT(Abstract Windowing Toolkit) 和Swing 。AWT包實(shí)現(xiàn)了標(biāo)準(zhǔn)的用戶界面組件(例如:按鈕和文本框)、基本繪圖組件、布局管理器和事件處理機(jī)制 。Swing包則極大的擴(kuò)展了這套用戶界面組件 。這些組件能自動呈現(xiàn)出符合其宿主平臺的外觀風(fēng)格(look and feel) 。Swing在基于當(dāng)前版本的AWT組件集的基礎(chǔ)上擴(kuò)充了一組高級組件,例如目錄視圖、列表框和分頁框 。AWT和Swing的包位于JavaVM.framework/Classes/classes.jar中的jar歸檔文件中 。


比較起Carbon和Cocoa環(huán)境,Java虛擬機(jī)連同最基本的Java包(java.lang、java.util和java.io)等同于系統(tǒng)軟件中的核心服務(wù)層 。它們從內(nèi)核環(huán)境中獲得資源以實(shí)現(xiàn)低級別的服務(wù)(例如:進(jìn)程管理、線程和輸入/輸出),而不必訪問系統(tǒng)軟件中的核心服務(wù)層(Open Transport,Core Foundation,等等) 。

Mac OS X中Java的所有其它部分被分層置于虛擬機(jī)和基本Java包之上 。如果一個Java程序不具用戶界面(或者說它是一個工具或應(yīng)用服務(wù)器),那么它僅僅只需要使用這些基本的Java包 。但是100%的純Java應(yīng)用程序或applet(根據(jù)定義,applet具有圖形用戶界面)必須使用AWT或Swing,這兩者均與系統(tǒng)軟件應(yīng)用服務(wù)層中的許多框架和庫綁定在一起 。Swing自身也被分層置于AWT包的原始部分之上 。AWT和Swing在結(jié)構(gòu)上等同于面向GUI的工具箱或框架,例如Carbon的人性化接口工具箱(Human Interface Toolbox)或Cocoa的Application Kit 。

如同任何一個Carbon或Cocoa應(yīng)用程序一樣,Java應(yīng)用程序也可以是能雙擊執(zhí)行的束(double-clickable bundle),您可以使用MRJAppBuilder工具軟件來綁定Java應(yīng)用程序 。另外,用戶也可以在命令行環(huán)境中運(yùn)行Java程序,或者通過系統(tǒng)exec調(diào)用和Java Runtime.exec 方法來執(zhí)行Java應(yīng)用程序 。對于后一種情況,所啟動Java程序的進(jìn)程名會被顯示成用于啟動可執(zhí)行Java程序的工具,即:java,或針對applet的appletviewer (例如,在Process Viewer中察看) 。

推薦閱讀