2 votos

Abrir paquetes de aplicaciones Java .app con doble clic en un Mac sin Java 6 de Apple

En resumen: en un mac con una instalación limpia de Yosemite, al hacer doble clic en un paquete de aplicaciones Java de estilo mac no se lanza la aplicación, a menos que se instale Java 6 de Apple, incluso si se instala la versión actual de Java para Mac de Oracle.

En profundidad: Cuando Apple desarrolló el SDK de Java para macosx, podías abrir un paquete de aplicaciones de estilo mac escrito en Java haciendo doble clic en su icono en el Finder, su icono de aplicación aparecería en tu dock mientras se ejecutaba, y sus elementos de menú vivirían en la barra de menú de Mac OS. Las aplicaciones Java se comportaban casi como las aplicaciones nativas de Mac.

Por otro lado, si instalas el actual SDK de Java de Oracle, puedes ejecutar tu aplicación Java con java -jar YourApp.app/Contents/Resources/Java/yourapp.jar Pero tienes un icono de dock genérico, tus elementos de menú viven en la parte superior de la ventana en lugar de la barra de menús.

Y si no tiene Java 6 de Apple instalado en la máquina, que no está incluido en las versiones recientes del sistema operativo, pero que todavía se puede descargar de Apple en este lugar (pero está bastante desactualizado en este momento), entonces sólo se obtiene un diálogo de mensaje de error: "Para abrir YourApp.app necesitas instalar el runtime Java SE 6 heredado" con un enlace a la implementación anticuada de Apple, aunque ya tengas instalado el Java 8 de Oracle.

En un Mac con Java 8 de Oracle instalado, pero no con Java 6 de Apple, ¿hay alguna forma de abrir una aplicación Java desde el finder, o de conservar estas otras compatibilidades de la plataforma nativa? ¿Existe una manera de forzar un paquete de aplicaciones para utilizar su instalación de Java preferida?

Básicamente estoy haciendo la misma pregunta que Para abrir "Eclipse" es necesario instalar el tiempo de ejecución de Java SE 6 heredado . ¿Hay alguna solución a este problema que no sea la instalación de Java 6 heredado?

También esta pregunta puede ser relevante: ¿La aplicación utiliza Java 6 de Apple en lugar de Java 7 de Oracle en Mac OS X?

En las preguntas Ejecutar java incluido en .app desde la línea de comandos y ¿Por qué es necesario Java SE 6 Legacy para abrir Intellij? En el caso de la versión 1.7 de Java, se sugiere que se puede forzar el uso de una versión más reciente de Java en el paquete de aplicaciones si se cambia la JVMVersion en YourApp.app/Contents/Info.plist, pero esto no me ha funcionado. Esas respuestas son de la era de Java 1.7, ¿tal vez esté desactualizada?

1voto

William Leara Puntos 7251

Según las respuestas a una pregunta que hice en la lista java-dev de Apple, parece que en un Mac con Java 8 de Oracle instalado, pero no con Java 6 de Apple, no hay forma actual de abrir un paquete de aplicaciones Java que haya sido creado con la antigua tecnología jar bundler de Apple. Sospecho que esto se debe a que el JavaApplicationStub está escrito para esperar algún aspecto del Java de Apple que no está presente en el Java de Oracle.

Desde el punto de vista del usuario, parece que lo único que hay que hacer es descargar e instalar Java 6 desde https://support.apple.com/kb/DL1572 mientras esté disponible.

Desde el punto de vista de un desarrollador, la apuesta más segura sería incrustar Java dentro de su paquete de aplicaciones utilizando una herramienta como jwrapper (www.jwrapper.com). También puede haber herramientas para crear un paquete que funcione con Java 8+ de Oracle.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X