OracleJava图标在浏览器窗口中的显示效果。将Java与最新版本的工具包相结合,可以防止应用程序因多个GTK版本冲突而崩溃。Oracle目前正计划将GTK3GUI工具包整合到基于Linux系统的Java9中。这将确保当前的Java与最新版本的工具包集成,防止应用程序因多个GTK版本冲突而崩溃。根据openjdk.net网站上发布的Java增强建议,该计划的目标是默认支持GTK(GIMP工具包)2,并在系统属性指定时在下游使用GTK3。各种基于JavaFX、Swing或AWT(AdvancedContainerToolkit)的Java图形应用程序将被纳入推荐计划,现有应用程序也可以在不修改GTK2或3以上版本的情况下运行在Linux上。该提案已由Oracle公司Java平台部高级架构师MarkReinhold发送给openjfx-dev邮件列表的成员。Java9预计在2017年3月正式发布。GTK目前被大量的Java包使用,包括AWT/Swing、JavaFX和SWT。SWT已经迁移到GTK3,但它仍然包含一个系统属性,即可以用来强制它使用更早的版本,”报告说。提案指出。“而且在软件包中混合使用不同GTK版本的做法可能会导致应用程序出现故障。”这个问题还具体影响到各种使用Eclipse开发平台的应用程序。该提案还指出,虽然GTK2和3目前默认可用于大多数Linux发行版,但仍有一些发行版计划没有包含它们。同样受到影响的还有GTK+,它是一种跨平台工具包,以功能和API的形式存在,并通过GNU项目作为免费软件分发。它包含在各种常见项目中,从ApacheOpenOffice办公软件套件到Inkscape矢量图形编辑器再到PyShare图片上传工具。根据Java提案,GTK2和3的替代方案是调整Java图形以仅支持GTK3,这将大大减少移植和测试的需要。但是,这种方案可能会带来大量无法通过测试发现的bug,这意味着我们需要投入额外的精力来检查AWT的外观和使用,并且需要移植JavaFX/Swing中的一个或两个。执行此类移植工作通常需要AWT和Swing之间进行大量协调。但是SunMicrosytems的一位前Java高管质疑由此产生的Java改进。“Linux平台上并没有很多基于Java的桌面应用程序,所以我不确定这个市场有多大,”Arun说,他以前在Sun的JavaEE团队工作,现在是Couchbase的开发人员推广副总裁。古普塔强调。原标题:Java9解决Linux上的GTKGUI痛点
