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