2013-02-24 96 views
6

为了帮助Java应用程序在Mac OS X上运行时看起来更像是本机应用程序,Apple创建了Apple Java Extensions以使Java应用程序更像Mac OS X。它们允许处理“关于”菜单并支持拖放到应用程序图标上。Java 7可以使用Apple Java扩展吗?

但是,我找不到任何表明这些扩展是否被包含在Java 7中,甚至用Java 7中使用我的理解,苹果公司合并他们的OS X实现到OpenJDK的,但我不知道这些扩展是否与之一致。我确实看到Mac OS X port of OpenJDK的目标是“包含一个完整的,原生的基于Cocoa的UI工具包”,但我无法找到关于这个需求的更多信息。搜索网络并不是很有成效,我不知道它们是否与Java 7兼容或甚至包含在内。

所以我想我有三个问题:

  • 将Mac上运行的Java 7能够使用Apple Java扩展?
  • 它们是否包含在Java 7中,如果没有,我可以下载它们以捆绑到我的应用程序中吗?
  • 这些扩展与Java 7兼容吗?

回答

6

运行Java 7的Mac能够使用Apple Java Extensions吗?

是的。它们都包含在Oracle发行版和OpenJDK中。请参阅下面的第二个答案。

我不能担保完整的API,因为我只需要一个子集来支持应用程序图标和应用程序框架上的拖放行为。我可以证实,尽管OpenJDK 7可以像预期的那样工作。但是,由于应用程序在Mac App Store上销售,所以在发行版上也没有问题。

它们是否包含在Java 7中,如果没有,我可以下载它们以捆绑到我的应用程序中吗?

它们包含在OpenJDK 7的,你可以找到来源/src目录/ MacOSX的/班/ COM /苹果并通过在macosx-port-dev mailing list可读的消息和错误修正为暗示Oracle支持。

它们也包含在Oracle发行版中,unjar rt.jar来查看它们。

您不必下载任何东西,刚开始在编辑器中使用它们:

IntelliJ completion

是否有任何替代这些扩展是Java 7的兼容?

不,我知道的,但我怀疑你需要一个替代方案。

+0

感谢您的回答!我很高兴听到它的作品,我感谢你分享你的使用经验! – Thunderforge 2013-02-24 19:37:29

+0

在Windows上的Java8的当前JDK发行版中,情况并非如此。 – koppor 2015-07-30 10:16:12

+0

对我来说java没有找到com.apple.eawt。是否有某种开关来启用它?如果我将rt.jar复制到其他位置并包含它,那么它就可以工作。 – Jochen 2015-11-20 17:32:00