Как я могу развить Apple Java Extensions в Windows?

Когда я выполняю многоплатформенное тестирование в Windows, становится досадно, что Eclipse показывает ошибки в проекте из-за кода com.apple.eawt, который у меня есть в специальной задаче настройки Mac. Хуже того, если я экспортирую запущенную банку в Windows, она не будет работать на Mac из-за нерешенных проблем компиляции.

Какой лучший способ позволить Windows Java и com.apple.eawt жить в мире? Я не могу понять, как я могу открутить код до флага, так как он требует доступа к большому количеству состояния программы.

Ответ 1

Я создал обновленную банку для решения этой проблемы. Источник GitHub здесь. Он размещался на maven central

Ответ 2

Похоже, это может быть то, что вам нужно: http://developer.apple.com/mac/library/samplecode/AppleJavaExtensions/

Это подключаемая банка классов-заглушек, представляющих новый Apple API eAWT и eIO для Java 1.4 на Mac OS X. Цель этих заглушек состоит в том, чтобы разрешить компиляцию кода eAWT- или eIO-ссылки на платформ, отличных от Mac OS X.

Ответ 3

Возможно, вы сможете использовать подход, принятый в OSXAdapter, "динамическая реализация [из которых] будет срабатывать только платформы, которые фактически поддерживают API Apple (например, Java 1.4 или новее в Mac OS X), избегая любых проблем с совместимостью". A пример приложения и adapter сам доступно, как указано в этой статье .

Ответ 4

Поместите специальный код OS X в отдельный класс.

В вашем основном коде используйте отражение, чтобы увидеть, присутствует ли один из классов Apple (или Class.forName), и если это так, THEN вызовет отдельный класс выше. Я не могу вспомнить, можете ли вы сделать это безопасно, просто позвонив ему, или вам нужно вызвать отдельный класс и отражением.