Java 9積極解決Linux中的GTK GUI難題
譯文瀏覽器窗口中的甲骨文Java圖標顯示效果。
將Java與該工具包***版本相結(jié)合能夠避免應用因多GTK版本沖突而遭遇故障。
目前甲骨文公司正計劃立足于Linux系統(tǒng)將GTK 3 GUI工具包納入Java 9當中。此舉將保證當前Java與該工具包的***版本加以結(jié)合,從而避免應用因多GTK版本沖突而遭遇故障。
根據(jù)openjdk.net網(wǎng)站發(fā)布的一項Java增強提案,這項舉措的目標在于以默認方式支持GTK(即GIMP工具包)2,并在系統(tǒng)屬性指定的情況下方行使用GTK 3。基于JavaFX、Swing或者AWT(即先進容器工具包)的各類Java圖形應用程序?qū)⒈患{入該薦規(guī)劃,而各現(xiàn)有應用程序亦可在無需針對GTK 2或者3進行修改的前提下運行于Linux之上。
這項提案已經(jīng)被甲骨文公司Java平臺部門***架構(gòu)師Mark Reinhold發(fā)送至openjfx-dev郵件名單中的各位成員。Java 9預計將在2017年3月正式發(fā)布。
“目前有大量Java軟件包在使用GTK,其中包括AWT/Swing、JavaFX以及SWT。SWT已經(jīng)遷移至GTK 3,但其中仍然包含一項系統(tǒng)屬性,可被用于強制其使用早期版本,”這份提案指出。“而這種在軟件包內(nèi)混用不同GTK版本的作法有可能導致應用程序發(fā)生故障。”
這一問題還特別影響到各類采用Eclipse開發(fā)平臺的應用程序。這份提案同時表示,盡管GTK 2與3目前已經(jīng)以默認方式可用于多數(shù)Linux發(fā)行版,但仍有一部分發(fā)行版方案尚未將其納入。
同樣受到影響的還有GTK+,這套跨平臺工具包作為功能部件及API存在,并通過GNU項目以免費軟件發(fā)布。其被囊括于多種常見項目當中,從Apache OpenOffice辦公軟件套件到Inkscape矢量圖形編輯器再到PyShare圖像上傳工具皆涵蓋其中。
根據(jù)這份Java提案,可資替代GTK 2與3的備選方案在于調(diào)整Java圖形以確保其只支持GTK 3,這將極大降低對移植與測試的需求。不過這套方案可能帶來大量無法通過測試發(fā)現(xiàn)的bug,意味著我們需要投入額外精力檢查AWT外觀與使用感受,且要求對JavaFX/Swing中的一者或者二者進行移植。這類移植工作在執(zhí)行中往往要求對AWT與Swing做出大量協(xié)調(diào)。
不過曾供職于Sun Microssytems公司的一位前Java管理人員對由此給Java帶來的改進效果提出了質(zhì)疑。“Linux平臺上的基于Java的桌面應用程序其實并不多見,因此我不太確定其面向的市場到底有多大規(guī)模,”前Sun公司Java EE團隊成員、現(xiàn)任Couchbase公司開發(fā)者布道副總裁的Arun Gupta強調(diào)稱。
原文標題:Java 9 to address GTK GUI pains on Linux
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】