Abra los paquetes de aplicaciones .app de Java haciendo doble clic en una Mac sin Java 6 de Apple

2

En resumen: en un mac con una instalación limpia de Yosemite, al hacer doble clic en un paquete de aplicaciones .app de Java mac compilado no se puede iniciar la aplicación, a menos que esté instalado Java 6 de Apple, incluso si la versión actual de Java para Mac de Oracle está instalado.

Al final: cuando Apple desarrollara el SDK de Java para macosx, podría abrir un paquete de aplicaciones de estilo mac .app escrito en Java haciendo doble clic en su icono en el Finder, su icono de aplicación aparecerá en su base mientras se estaba ejecutando, y sus elementos de menú vivirían en la barra de menú de Mac OS. Las aplicaciones Java se comportaron casi como aplicaciones nativas de Mac.

Por otra parte, si instala el Java SDK actual de Oracle, puede ejecutar su aplicación Java con java -jar YourApp.app/Contents/Resources/Java/yourapp.jar , pero obtiene un icono de base genérico, sus elementos de menú viven en la parte superior de la ventana en lugar de en 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 está disponible para descargar de Apple en esta ubicación (pero está bastante desactualizada en este momento), luego aparece un mensaje de error:" Para abrir YourApp.app necesita instalar el tiempo de ejecución de Java SE 6 heredado . " con un enlace a la implementación obsoleta de Apple, a pesar de que ya tiene instalado Java 8 de Oracle.

EnunaMacconJava8deOracleinstalado,peronoJava6deApple,¿hayalgunaformadeabrirunaaplicaciónJavadesdeelbuscadoroconservarestasotrascompatibilidadesdeplataformasnativas?¿Hayalgunamaneradeforzarqueunpaquete.appusesuinstalaciónJavapreferida?

Básicamenteestoyhaciendolamismapreguntaque Para abrir" Eclipse "necesita instalar el tiempo de ejecución de Java SE 6 heredado . ¿Existe una 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 Ejecute java incluido en .app desde la línea de comandos y ¿Por qué se requiere Java SE 6 Legacy para abrir Intellij? , se sugiere que pueda forzar a su paquete .app de Java a usar una versión más nueva de Java si cambia la versión JVMVersion en YourApp.app/ Contents / Info.plist, pero esto no funcionó para mí. Esas respuestas son de la era Java 1.7, ¿tal vez esté desactualizada?

    
pregunta ziggurism 17.04.2015 - 07:21

1 respuesta

1

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

Desde el punto de vista del usuario, lo único que debería hacer es descargar e instalar Java 6 desde enlace mientras todavía está disponible.

Desde el punto de vista de un desarrollador, la apuesta más segura sería incrustar Java en el paquete de la aplicación utilizando una herramienta como jwrapper (www.jwrapper.com). Alternativamente, puede haber herramientas para crear un paquete que se ejecutará con Java 8+ de Oracle.

    
respondido por el David 17.04.2015 - 16:47

Lea otras preguntas en las etiquetas