Ответ 1
Я создал обновленную банку для решения этой проблемы. Источник GitHub здесь. Он размещался на maven central
Когда я выполняю многоплатформенное тестирование в Windows, становится досадно, что Eclipse показывает ошибки в проекте из-за кода com.apple.eawt, который у меня есть в специальной задаче настройки Mac. Хуже того, если я экспортирую запущенную банку в Windows, она не будет работать на Mac из-за нерешенных проблем компиляции.
Какой лучший способ позволить Windows Java и com.apple.eawt жить в мире? Я не могу понять, как я могу открутить код до флага, так как он требует доступа к большому количеству состояния программы.
Я создал обновленную банку для решения этой проблемы. Источник GitHub здесь. Он размещался на maven central
Похоже, это может быть то, что вам нужно: http://developer.apple.com/mac/library/samplecode/AppleJavaExtensions/
Это подключаемая банка классов-заглушек, представляющих новый Apple API eAWT и eIO для Java 1.4 на Mac OS X. Цель этих заглушек состоит в том, чтобы разрешить компиляцию кода eAWT- или eIO-ссылки на платформ, отличных от Mac OS X.
Возможно, вы сможете использовать подход, принятый в OSXAdapter, "динамическая реализация [из которых] будет срабатывать только платформы, которые фактически поддерживают API Apple (например, Java 1.4 или новее в Mac OS X), избегая любых проблем с совместимостью". A пример приложения и adapter сам доступно, как указано в этой статье .
Поместите специальный код OS X в отдельный класс.
В вашем основном коде используйте отражение, чтобы увидеть, присутствует ли один из классов Apple (или Class.forName), и если это так, THEN вызовет отдельный класс выше. Я не могу вспомнить, можете ли вы сделать это безопасно, просто позвонив ему, или вам нужно вызвать отдельный класс и отражением.
Последнее можно загрузить с http://developer.apple.com/library/mac/samplecode/AppleJavaExtensions, нажмите кнопку "Загрузить образец" в верхней части страницы
Последняя документация находится на