2013-02-24 69 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