posts - 189,comments - 115,trackbacks - 0

          Java6印象:桌面應用勝出者

          ???????? Java beta已經發布了,雖然離正式的FCS還有一段時間,一個朋友還是急不可耐地下載了Java6進行試用,他認為Java6將會給Java桌面開發帶來革命性的變化。

          ???????? 最近發版的Java6(Mustang)beta是功能齊全足夠穩定的版本,我下載并在第一周測試了這一版,我尤其被它的桌面功能所吸引,除了命名習慣改變了(2不再Java SE中出現),在許多新功能上都值得探索。改進總的來說分為兩類:桌面開發和內核。

          ???????? 桌面開發改進主要體現在用戶界面(UI)效率以及本地操作系統桌面集成上。核心改進主要集中在增加開發效率和Java應用管理上。Sun的Mustang開發小組對Web服務和安全改進做了很多重要的努力。

          ???????? 總的來說,不管你是應用開發者、系統管理員、工具提供商或者安全專家,Java6都為你提供你想要的。本文描述了一些我用過的有趣新功能。

          內核功能和改進

          ???????? Java內核是Java的幾個部分,包括語言和工具,這些是Java其他方面的基礎,從用戶界面API到服務類庫。下面我細分小類描述Java內核以及Java6的改進。

          開發效率

          ???????? 新的Java編譯器API允許在Java應用程序中編譯Java代碼。在編譯的時候,應用程序能夠訪問格式化的類庫依賴信息、警告信息、錯誤信息以及編譯中產生的其他消息(該功能已經被netbeans6.0集成進去,實現新的Javac API,并籍此提高錯誤信息的提示)。盡管此項功能我不會經常用到,但是我已經發現它的新用處了。比如,用它為應用程序數據庫迅速生成數據訪問層。我寫的代碼生成并編譯訪問應用程序數據庫的類,最終生成jar文件,這些jar文件產生、生成之后作為系統的一部分部署到Ant腳本中。在應用程序中生成并編譯使得代碼生成變得可以互動起來,我可以不斷修改并反復生成這些類。

          ???????? 為使用Java的腳本功能,Java6支持了JSR223,JSR223提供腳本語言訪問Java內部的框架,你可以在運行時定位并啟動腳本引擎來運行你指定的腳本。另外,Web腳本框架還允許腳本在任何Servlet容器內生成Web頁面。

          ???????? 對于調試來說,Java平臺調試接口(JPDA)增強了檢測死鎖以及為被鎖定監控對象產生堆棧跟蹤的功能。此外,Java6添加了允許客戶程序attach到一個正在運行的虛擬機進行診斷的功能。

          應用程序管理

          ???????? Java6增強了內存泄漏分析和檢測,在java.lang.OutOfMemory異常中包含了所有跟蹤棧的信息,并能當堆棧溢出時時產生致命錯誤的日志。另外,增添了一個新的虛擬機選項允許你當堆棧溢出時調用某段腳本。

          ???????? JMX監控API的增強允許應用程序在MBean屬性值(包括那些包含在復雜類型內的)超出臨界值時發送事件消息。

          ???????? 對于Solaris10用戶,Solaris的Hotspot JVM為Solaris的DTrace系統調試工具提供鉤子來追蹤和顯示虛擬機內部活動,比如垃圾收集器、類加載、線程、鎖等等。參加JavaOne大會時,我觀看此項功能的演示,深深被DTrace工具調試的深度所吸引。應用程序運行時,DTrace允許你在任何地方中斷代碼的運行,查看所有加載的庫(不僅僅是Java類庫,還包含系統類庫),跟蹤到Solaris內核直至硬件!Java提供的這個令人驚訝的新工具讓系統調試成為可能。我現在還記得過去經常會遇到虛擬機中報出Solaris Signal-8的錯誤,此新功能能幫我一探究竟。

          Web服務

          ????????? Java6包含了一些新的API來支持Web服務。XML數字簽名API允許你對XML數據進行加密,從而安全地使用基于Java的Web服務,Java-XML Web服務(JAX-WS)2.0 API更新了以前稱作JAX-RPC的接口。Java-XML綁定(JAXB)2.0的增強包括XML Schecma支持以及將類直接綁定到Schema上。最后,XML流API(STaX)提供了雙向應用程序接口通過事件流來讀寫XML,包括跳過某些部分,只處理于文檔的某些部分。

          安全

          ????????? Java6的安全包括GSS/Kerberos集成,LDAP認證的Java認證及授權服務(JAAS),允許Java應用程序通過多種協議請求安全證書的安全證書請求框架。

          桌面功能和改進

          ???????? 很長一段時間內Java被認為是優秀的服務器段軟件語言,而在桌面GUI應用方面被認為是次等公民。Sun的Java桌面開發小組一直致力于改變這種看法,將Java同本地操作系統更緊密的集成,結果在Java6中不僅提高了用戶界面效率,還改進了Java GUI應用程序的表現。

          ???????? Java6的許多新的桌面功能基于JDIC項目,JDIC項目讓Java應用程序可以訪問本地操作系統的許多功能,比如瀏覽器、email編輯器、文件類型關聯、系統托盤、應用程序啟動以及打印等等。下面是Java6在桌面開發上的明顯改進:

          啟動畫面支持

          ???????? 啟動畫面告訴用戶等待應用程序啟動。Java6甚至提供了在虛擬機啟動之前展現啟動畫面的支持。

          Java基礎類(JFC)以及Swing改進

          ???????? Java6調整了Windows API,使Swing既提高了運行速度,又保證了當前Windows版本的Windows外觀。

          • 增強了布局管理器,加入了自定義布局管理器以及其他簡化界面組件的布局器。
          • 極大的增強了Swing的drag-and-drop功能,使其更加靈活。
          • 真雙緩沖機制提供了快速平滑的界面切換。
          • 系統托盤支持,在java.awt中增添了兩個新類SystemTray和TrayIcon,允許你在Windows和Gnome Linux系統托盤上添加圖標、tool tips、以及彈出菜單。系統托盤是所有應用程序共享的桌面領域,通常位于桌面的左下角,動作事件允許Java應用程序跟蹤你放入托盤上圖標鼠標點擊事件。我發現這個新功能對我的服務器端程序也有用,比如和下文所提到的Desktop API結合使用能容易地為應用程序管理員啟動管理頁面瀏覽器。不管是什么操作系統(Linux還是Windows),我不再需要記住應用程序管理端口或者URL,只需要點擊圖標,頁面就出現了。
          • JTable的增強打印的支持。
          • Java2D的增強:增強了文本顯示質量,特別是在液晶(LCD)顯示器上,同本地桌面字體反走樣設置集成確保了文本顯示的一致性。
          • 新的java.awt.Desktop的API:Java6新的Desktop包目的是使Java用戶界面程序成為一等公民。使用該包,Java應用程序能夠啟動缺省的瀏覽器和電子郵件客戶端,并且和普通桌面應用程序(比如OpenOffice)集成,能夠打開、編輯并且打印特定類型的文件。Desktop包通過動作事件(Desktop.Action)來提供此項功能,讓你能集成到你的應用系統中。

          國際化

          ?????????? Java6為某些格式支持可插拔式支持,比如日期格式化、Unicode文本標準化以及資源bundle。

          ???????? Java6有可能使Java桌面應用產生革命的變化,就像java 2曾經產生的服務器端革命一樣。我們最好為這場風暴做好準備,為早期投入Java桌面市場得到的報償擺好姿態。

          posted on 2007-03-30 20:32 MEYE 閱讀(683) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 晋城| 乌拉特前旗| 中阳县| 天津市| 任丘市| 横山县| 双辽市| 客服| 达日县| 舒兰市| 农安县| 抚远县| 金门县| 南康市| 南丹县| 内黄县| 隆尧县| 浪卡子县| 平乐县| 乐平市| 天津市| 斗六市| 兴宁市| 张家港市| 雅江县| 巴里| 韶山市| 闸北区| 衡南县| 道孚县| 彰化市| 宝应县| 永仁县| 轮台县| 阿拉善左旗| 莱西市| 东平县| 崇阳县| 桂东县| 吴堡县| 昆明市|