Apple贬低Java。 Apple特定的自定义设置是否仍可与其他JRE / JVM一起使用?

Apple“弃用”Java并将在未来停止支持它。

假设Oracle将在Mac上接管Java的支持,是否有办法确保特定于Apple的黑客“将菜单栏置于屏幕顶部”或“默认使用本机主题”将得到支持在针对Apple平台的其他JRE / JVM上采用相同的方式吗?

是否有一些行业标准或优先权如何处理这些情况,或者这对个别开发人员来说是一个额外的负担(==还有另一个运行时要测试)?

通常的做法是从前一个实现的角度出发,并将错误复制到像Apple实现一样的行为吗? 或者更有可能的是,工程将从一些像OpenJDK这样的“标准”Java开始,并将它适应Mac OSX系统,引入不同的错误/ API /设置以集成到本机平台?

虽然Apple的举动和甲骨文的反应的细节仍然不明确,但如果有“大公司在这些情况下表现得如何”的经验能够加强并提供一些见解,我将非常高兴。

似乎Apple的贡献和自定义都可供Oracle和Java社区使用。 来自2010年11月12日的Apple新闻稿 ,标题为Oracle和Apple宣布面向Mac OS X的OpenJDK项目

Apple将贡献Mac OS X上Java SE 7实现所需的大部分关键组件,工具和技术,包括基于32位和64位HotSpot的Java虚拟机,类库,网络堆栈以及一个新的图形客户端。 OpenJDK将为开源开发人员提供Apple的Java技术,以便他们可以访问并为此做出贡献。

该声明还声称Oracle将来会支持OS X:

Apple还确认Apple将继续提供Java SE 6,用于Mac OS XSnowLeopard®和即将发布的Mac OS X Lion。 Oracle将提供Java SE 7和Mac OS X的Java未来版本。

使用$JAVA_HOME/lib/swing.properties文件在Oracle JVM中已经可以“默认使用本机主题”(假设$JAVA_HOME是一个环境变量)。

它应该包含这样的东西:

 # Swing properties swing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel 

注意:这是Nimbus L&F名称,这是Java 6u10中新的基于矢量的跨平台UI。

我不知道Apple的LVM中的Mac L&F名称是什么,它在Oracle的Mac JVM中可能有不同的名称。

可悲的是,我不知道如何在没有明确指定的情况下将其强制为原生。

至于其他属性(例如合并menubar属性)是否可以在Oracle OSX JVM中运行,我们将不会知道,直到Oracle实际生成一个。