我开发了一个在mac os x和windows
中运行的e4应用程序我正在使用mac os x jre中存在的一些类但它们在windows jre中缺失
当我们从windows eclipse运行它时,丢失的文件显示错误
mac jre中存在相同的文件,因此当我们从mac eclipse运行它时,这不显示错误
引用库是 - /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar(在windows jre中不存在)
我想摆脱Windows平台“eclipse”中的错误
如果我将ui.jar库添加为引用,则mac中的功能会变得疯狂并抛出运行时异常(java.lang.RuntimeException:Unimplemented)
答案 0 :(得分:1)
将Mac代码放入插件或片段中,并在MANIFEST.MF中设置平台过滤器,以便它仅包含在Mac版本中。例如:
Eclipse-PlatformFilter: (& (osgi.ws=cocoa) (osgi.os=macosx) (osgi.arch=x86_64) )
指定代码仅适用于64位Mac OS X.
您必须安排仅在Mac上调用插件中的代码。一种方法是还有一个仅限Windows的插件,其中包含相同类的Windows版本。
答案 1 :(得分:1)
首先,我想说这是一个非常沮丧的事情; Eclipse应用程序(以及一般的Java应用程序)旨在与平台无关;引入依赖于特定于平台的实现的代码通常是坏主意和最后的手段。如果您能提出任何替代方案,我建议您这样做。
说完了......
您可以隔离使用特定于Mac的类的代码并将其放入Fragment中。 Fragment在它的清单中有限制,只允许它安装在OS X上。这就是SWT如何处理其实现的特定于平台的部分。
详细了解碎片in the Eclipse Help。