当我在Windows上进行多平台测试时,由于我在特殊的Mac自定义任务中使用了com.apple.eawt代码,因此Eclipse在项目中显示错误会让人烦恼。更糟糕的是,如果我在Windows上导出一个可运行的jar,由于未解决的编译问题,它将无法在mac上运行。
让Windows Java和com.apple.eawt和平相处的最好方法是什么?我无法看到我如何能够将代码分离到jar,因为它需要访问程序的大部分状态。
答案 0 :(得分:13)
我创建了一个更新的jar来解决这个问题。 GitHub来源here。 它托管在maven central
上答案 1 :(得分:6)
看起来它可能就是你所追求的:http://developer.apple.com/mac/library/samplecode/AppleJavaExtensions/
这是一个可插入的存储类jar,代表新的Apple 适用于Mac OS X上的Java 1.4的eAWT和eIO API。这些存根的目的 是允许编译eAWT或eIO参考代码 Mac OS X以外的平台。
答案 2 :(得分:0)
您可以使用OSXAdapter中采用的方法,“动态实现[其中]仅在实际支持Apple API的平台上触发(例如Mac OS X上的Java 1.4或更高版本) ,避免任何兼容性问题。“如sample application中所述,adapter和article本身可用。
答案 3 :(得分:0)
将OS X特定代码放在一个单独的类中。
在主代码中,使用反射来查看是否存在其中一个Apple类(或Class.forName),如果存在,则调用上面的单独类。我不记得你是否可以通过调用它来安全地做到这一点,或者你也需要通过反射来调用单独的类。
答案 4 :(得分:0)