2013-01-17 35 views
3

我正在开发基于Java 1.6的跨平台(Mac OS X,Win和Linux)应用程序。为了在Mac OS平台上实现更好的集成,我必须使用Mac OS X特定的类,这些类既不能在其他平台的JDK或JRE上使用,也不能与应用程序一起分发。跨平台应用程序中的Apple Java 1.6特定类

我的问题是什么是最好战略,以保持代码编译在Mac OS X和Windows平台上而不保持两个不同的版本?

回答

3

有ClassLoaders的玩法。这是插件的开发很相似,至少有通常用于:

将构建主,跨平台的应用程序 你将宣布 您将创建一个“插件加载”将加载可用插件的接口。在macosx mac上,在windows的窗户上。

开发和建设3个插件:MAC,LINUX,窗户

-autolink它在与类加载器运行。

1

我想你将无法编译代码使用这些类,除非你限制都采用反射。这可能会导致更多的问题,而不是它的价值。

您可以将Apple特定部分提取到单独的工件/项目中,并仅在Mac上进行编译。并通过主项目中的预定义(共享)接口。通过这种方式,您可以简单地尝试通过反射来加载Apple特定的代码,如果这不起作用,请使用虚拟实现。