Хотя я еще не сделал этого сам, должна быть возможность использовать зависящие от ОС фрагменты плагинов для этой задачи. Я видел те, которые использовались для зависимого от ОС кода SWT в Eclipse Delta Pack.
1) Для каждой ОС, которую вы хотите поддерживать, определите фрагмент плагина, названный этой ОС.
2) Файлы MANIFEST.MF могут содержать фильтр для платформы, как объяснено в ответе на другой вопрос. Установите Eclipse-PlatformFilter, добавив одну из следующих строк в MANIFEST.MF фрагмента:
- Eclipse-PlatformFilter: (osgi.os = win32)
- Eclipse-PlatformFilter: (osgi.os = macosx)
Или используйте фильтр OSGi для org.osgi.framework.os.name (рекомендуется в ответе, упомянутом выше), но я не смог найти на 288 страницах спецификации, как этот фильтр будет объявлен.
3) Каждый фрагмент содержит в своем фрагменте .xml структуру меню для этой ОС. Файл plugin.xml исходного плагина содержит только общую конфигурацию, например команды и обработчики.
Вы можете добавить собственный вклад в меню в предопределенные меню, если вы знаете идентификатор меню. См. Eclipse Wiki на Вклад в меню и Справку Eclipse для org.eclipse.ui.menus .