Я разработал приложение e4, которое работает как в Mac OS X, так и в окнах
Я использую некоторые классы, которые присутствуют в mac os x jre, но они отсутствуют в windows jre
отсутствующий файл показывает ошибку, когда мы запускаем его из окна 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)
Сначала я хочу сказать, что это очень обескураживающая вещь; Приложения Eclipse (и Java-приложения в целом) предназначены для агностики платформы; введение кода, зависящего от реализации на платформе, обычно является плохими идеями и последними средствами. Если вы можете придумать любую альтернативу, я призываю вас сделать это.
Было сказано, что...
Вы можете выделить код, который использует классы, специфичные для Mac, и поместить их в фрагмент. Фрагмент имел бы ограничения в этом манифестах, которые позволяли бы его устанавливать только в OS X. Именно так SWT обрабатывает специфические для платформы части его реализации.
Подробнее о фрагментах в справке Eclipse.
Поместите код Mac в плагин или фрагмент с фильтром платформы, установленным в MANIFEST.MF, чтобы он включался только в сборку Mac. Например:
Eclipse-PlatformFilter: (& (osgi.ws=cocoa) (osgi.os=macosx) (osgi.arch=x86_64) )
Указывает, что код предназначен только для 64-разрядной Mac OS X.
Вам придется организовать вызов кода в плагине только на Mac. Один из способов - также иметь только Windows-плагин с версиями Windows тех же классов.