3

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

我的问题是在不维护两个不同版本的情况下保持代码在 Mac OS X 和 Win 平台上可编译 的最佳策略是什么?

4

2 回答 2

3

有一个类加载器的游戏。插件开发非常类似,至少经常用到:

您将构建主要的跨平台应用程序您将声明一个接口您将创建一个“插件加载器”,它将加载可用的插件。在 macosx 上是 mac 一,在 windows 上是 windows 一。

开发和构建 3 个插件:mac、linux、windows

- 在运行时使用类加载器自动链接它。

于 2013-01-17T07:57:27.077 回答
1

我认为您将无法编译使用这些类的代码,除非您将所有用途限制为反射。这可能会导致比其价值更多的问题。

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

于 2013-01-17T07:54:54.537 回答