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
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?