Java 9积极解决Linux中的GTK GUI难题

译文
开发 后端
根据这份Java提案,可资替代GTK 2与3的备选方案在于调整Java图形以确保其只支持GTK 3,这将极大降低对移植与测试的需求。不过这套方案可能带来大量无法通过测试发现的bug,意味着我们需要投入额外精力检查AWT外观与使用感受,且要求对JavaFX/Swing中的一者或者二者进行移植。

[[163085]]

浏览器窗口中的甲骨文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

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:王雪燕 来源: 51CTO
相关推荐

2009-12-11 14:17:05

Linux平台空间消失

2013-11-13 14:33:10

hadoop分布式系统

2009-07-08 14:32:10

GTK+嵌入式Linux

2015-12-17 14:40:41

Java解决难题

2009-12-03 16:33:02

路由交换设备

2020-11-10 11:29:36

LinuxGUICLI

2020-11-10 22:57:32

LinuxGUICLI

2022-06-24 09:58:52

CurtailLinux

2019-01-27 17:32:38

边缘计算网络边缘节点

2020-09-29 07:18:24

Linuxtee命令

2017-02-06 19:26:10

开发业务应用

2023-11-10 09:20:28

Java工具

2011-06-13 13:06:48

Gtk Qt

2012-05-09 09:21:16

Fedora 9

2011-01-04 14:36:39

LinuxGTK编程

2010-02-05 15:32:33

Java内部类

2009-03-12 17:46:28

VMware虚拟化IT

2016-03-02 15:36:58

广域SDN华为

2013-06-13 09:00:42

网络设计网络问题数据包

2020-09-22 11:55:26

Linux命令操作系统
点赞
收藏

51CTO技术栈公众号