如何在Windows上开发Apple Java Extensions?

当我在Windows上进行多平台测试时,由于我在特殊的Mac自定义任务中使用了com.apple.eawt代码,因此Eclipse在项目中显示错误变得很烦人。 更糟糕的是,如果我在Windows上导出一个可运行的jar,由于未解决的编译问题,它将无法在mac上运行。

让Windows Java和com.apple.eawt和平相处的最佳方法是什么? 我无法看到如何将代码分离到jar,因为它需要访问程序的大部分状态。

我创建了一个更新的jar来解决这个问题。 GitHub源码在这里 。 它托管在maven中心

看起来它可能是你想要的: http : //developer.apple.com/mac/library/samplecode/AppleJavaExtensions/

这是一个可插入的存根类jar,代表Mac OS X上用于Java 1.4的新Apple eAWT和eIO API。这些存根的目的是允许在Mac OS X以外的平台上编译eAWT或eIO引用代码。

您可以使用OSXAdapter中采用的方法,“动态实现[其中]仅在实际支持Apple API的平台上触发(例如Mac OS X上的Java 1.4或更高版本),避免任何兼容性问题。” 如本文所述,可以使用示例应用程序和适配器本身。

将OS X特定代码放在单独的类中。

在主代码中,使用reflection来查看是否存在其中一个Apple类(或Class.forName),如果存在,那么请调用上面的单独类。 我不记得你是否可以通过调用它来安全地做到这一点,或者你也需要通过reflection来调用单独的类。

最新版本可以从http://developer.apple.com/library/mac/samplecode/AppleJavaExtensions下载,点击页面顶部的“下载示例”按钮

最新的文档是在

http://developer.apple.com/library/mac/documentation/Java/Reference/JavaSE6_AppleExtensionsRef/api/index.html?com/apple/eawt/Application.html