2010-01-27 15 views
11

Cuando realizo pruebas multiplataforma en Windows me molesta que Eclipse muestre errores en el proyecto debido al código com.apple.eawt que tengo en una tarea especial de personalización de Mac. Peor aún, si exporto un jar ejecutable en Windows, no se ejecutará en mac debido a problemas de compilación no resueltos.¿cómo puedo desarrollar Apple Java Extensions en Windows?

¿Cuál es la mejor manera de dejar que Windows Java y com.apple.eawt vivan en paz? No veo cómo podría derivar el código a un contenedor, ya que requiere acceso a muchos estados del programa.

Respuesta

13

que crearon un frasco actualizado para resolver este problema. Fuente GitHub here. está alojado en maven central

+0

¡Gracias, este es un gran ahorro de tiempo! –

6

Esto parece que podría ser lo que está buscando: http://developer.apple.com/mac/library/samplecode/AppleJavaExtensions/

Este es un frasco enchufable de clases stub que representa el nuevo Apple API eAWT y EIO para Java 1.4 en Mac OS X. El propósito de estos talones es permitir la recopilación de eAWT- o código EIO referencias en plataformas distintas de Mac OS X.

+1

Oh hombre lo que un rollo. Como es para un JDK antiguo, no es compatible con setDockIcon(), que necesito para cuando la aplicación se inicie a través de Java Web Start. ¡Pero gracias por la ventaja! –

0

Usted puede ser capaz de utilizar el enfoque adoptado en OSXAdapter, la "dinámica de aplicación [de whi ch] solo se activará en plataformas que realmente sean compatibles con las API de Apple (p. Java 1.4 o posterior en Mac OS X), evitando cualquier problema de compatibilidad." Un sample application y la adapter sí están disponibles, como se ha mencionado en este article.

0

Ponga el código específico OS X en una clase separada.

en su código principal, el uso de reflexión para ver si una de las clases de Apple están presentes (o una Class.forName), y si entonces, ENTONCES invoque la clase separada anterior. No puedo recordar si puede hacer eso solo con calli ng it, o necesita invocar la clase por reflexión también.

0

La última se puede descargar desde http://developer.apple.com/library/mac/samplecode/AppleJavaExtensions, haga clic en el botón "Descargar la muestra" en la parte superior de la página

La documentación más reciente está en

http://developer.apple.com/library/mac/documentation/Java/Reference/JavaSE6_AppleExtensionsRef/api/index.html?com/apple/eawt/Application.html

+0

A partir de marzo de 2014, el enlace de documentación da una Página no encontrada. Me encanta el hábito de Apple de mover cosas. *suspiro* –

Cuestiones relacionadas