dt.jar 設計時 rt.jar 運行時

很多人在初學Java的時候,都要配置環境變量。在配置CLASSPATH的時候,都會加上一個當前目錄.,還有兩個jar:dt.jar和tools.jar。其實好多人都不瞭解這兩個jar的作用,尤其是dt.jar。網上的大部分解釋是這樣的:dt.jar是關於運行環境的類庫,主要是swing的包;tools.jar是關於一些工具的類庫。對於後者我贊同,tools.jar中主要是jdk工具,包括javac,java,javap,javadoc等。javac,java,javadoc,很多都熟悉。javap,是java printer的縮寫,是jdk自帶的一個反編譯工具。不過把dt.jar解釋成關於運行環境的類庫,我是百思不得其解。所謂的運行環境是什麼?難道是JRE?本文也希望高手可以給我一個解釋。下面是我自己整理的關於dt.jar的資料:

     首先看一下SUN對於dt.jar的定義:Also includes dt.jar, the DesignTime archive of BeanInfo files that tell interactive development environments (IDE's) how to display the Java components and how to let the developer customize them for the application。中文翻譯過來就是:dt.jar是BeanInfo文件的DesignTime歸檔,BeanInfo文件用來告訴集成開發環境(IDE)如何顯示Java組件還有如何讓開發人員根據應用程序自定義它們。這段文字中提到了幾個關鍵字:DesignTime,BeanInfo,IDE,Java components。其實dt.jar就是DesignTime Archive的縮寫。那麼何爲DesignTime。

    何爲DesignTime?翻譯過來就是設計時。其實瞭解JavaBean的人都知道design time和runtime(運行時)這兩個術語的含義。設計時(DesignTIme)是指在開發環境中通過添加控件,設置控件或窗體屬性等方法,建立應用程序的時間。與此相對應的運行時(RunTIme)是指可以象用戶那樣與應用程序交互作用的時間。那麼現在再理解一下上面的翻譯,其實dt.jar包含了swing控件中的BeanInfo,而IDE的GUI Designer需要這些信息。那讓我們看一下dt.jar中到底有什麼?下面是一張dt.jar下面的內容截圖:



    從上面的截圖可以看出,dt.jar中全部是Swing組件的BeanInfo。那麼到底什麼是BeanInfo呢?

    何爲BeanInfo?JavaBean和BeanInfo有很大的關係。Sun所制定的JavaBean規範,很大程度上是爲IDE準備的——它讓IDE能夠以可視化的方式設置JavaBean的屬性。如果在IDE中開發一個可視化應用程序,我們需要通過屬性設置的方式對組成應用的各種組件進行定製,IDE通過屬性編輯器讓開發人員使用可視化的方式設置組件的屬性。一般的IDE都支持JavaBean規範所定義的屬性編輯器,當組件開發商發佈一個組件時,它往往將組件對應的屬性編輯器捆綁發行,這樣開發者就可以在IDE環境下方便地利用屬性編輯器對組件進行定製工作。JavaBean規範通過java.beans.PropertyEditor定義了設置JavaBean屬性的方法,通過BeanInfo描述了JavaBean哪些屬性是可定製的,此外還描述了可定製屬性與PropertyEditor的對應關係。BeanInfo與JavaBean之間的對應關係,通過兩者之間規範的命名確立:對應JavaBean的BeanInfo採用如下的命名規範:<Bean>BeanInfo。當JavaBean連同其屬性編輯器相同的組件註冊到IDE中後,當在開發界面中對JavaBean進行定製時,IDE就會根據JavaBean規範找到對應的BeanInfo,再根據BeanInfo中的描述信息找到JavaBean屬性描述(是否開放、使用哪個屬性編輯器),進而爲JavaBean生成特定開發編輯界面。

    哈哈。現在可以理解dt.jar了吧。其實裏面主要是swing組件的BeanInfo。IDE根據這些BeanInfo顯示這些組件以及開發人員如何定製他們。


發佈了21 篇原創文章 · 獲贊 14 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章