我正在开发基于Java 1.6的跨平台(Mac OS X,Win和Linux)应用程序。为了更好地集成到Mac OS平台上,我必须使用Mac OS X特定的类,这些类既不能在其他平台的JDK或JRE上使用,也不能随应用程序一起分发。
我的问题是什么是 最佳 策略,以便在不维护两个不同版本的情况下在Mac OS X和Win平台上保持代码可编辑?
答案 0 :(得分:3)
有一个关于ClassLoaders的游戏。它与插件开发非常相似,至少经常使用:
您将构建主要的跨平台应用程序 你将声明一个接口 你将创建一个“插件加载器”,它将加载可用的插件。在macosx上的mac one,在windows windows上。
开发和构建3个插件:mac,linux,windows
- 在运行时使用classloader自动链接它。
答案 1 :(得分:1)
我认为您将无法编译使用这些类的代码,除非您将所有用途限制为反射。这可能导致更多的问题而不是它的价值。
您可以将Apple特定部件提取到单独的工件/项目中,并仅在Mac上进行编译。并通过主项目中的预定义(共享)接口引用 。这样您就可以尝试通过反射加载特定于Apple的代码,如果这不起作用,请使用虚拟实现。