¿Qué hace realmente un archivo .app?

12

Soy nuevo en Mac OS X (desde Windows) y estoy tratando de entender los archivos .app. En Windows, teníamos ejecutables (archivos .exe). Si abres uno, tu programa se ejecutará y cualquier otro archivo que necesite se ubicará en otro lugar. En Mac OS X, según tengo entendido, estos "archivos" .app son realmente más como carpetas que contienen no solo el ejecutable en sí, sino también otros archivos que la aplicación puede necesitar.

Mi pregunta es, ¿qué hacen exactamente estos archivos .app? ¿Cómo es diferente de perforar en ellos y ejecutar el ejecutable real?

Recientemente estaba tratando de hacer que una aplicación se ejecute en OS X. Finalmente conseguí que funcionara (parece que JAVA_HOME necesitaba ser configurada). Sin embargo, solo funciona cuando profundizo en la carpeta .app y ejecuto el script de shell que inicia la aplicación. Si hago doble clic en el archivo / carpeta .app, la aplicación simplemente rebota en el muelle por un tiempo, finalmente se detiene y no sucede nada (aparte de que los fanáticos giran como locos). Claramente, el sistema operativo está haciendo algo diferente cuando intenta ejecutar la aplicación desde el archivo .app en lugar de hacerlo directamente desde el ejecutable.

Me gustaría entender qué está haciendo exactamente la aplicación. Esto hace que esta aplicación no se ejecute para poder trabajar para solucionar el problema. Para su información, la aplicación es Oracle SQL Developer.

usuario1015721
fuente
2
.app es solo una extensión y no es obligatorio en OSX para que una carpeta se comporte como una aplicación. ¿Has hecho clic derecho en el archivo en cuestión y has revelado el contenido? Podría ayudarlo a asimilar el diseño y refinar el error que está experimentando.
bmike
La extensión .app convierte un directorio normal en el denominado "paquete de aplicaciones", que incluye el ejecutable de la aplicación y los recursos relacionados (iconos, gráficos, archivos de propiedades, localizaciones, etc.). Consulte en.m.wikipedia.org/wiki/ Artículo de Application_bundle o documentación de desarrolladores de Apple.
Alex Popov

Respuestas:

12

Las "aplicaciones" son "Paquetes de paquetes" es la jerga de Apple y son tratadas especialmente por el sistema operativo. Como se mencionó anteriormente, estos son en realidad directorios de Unix, en un formato especial. El archivo ejecutable de Unix real está en un subdirectorio llamado MacOS, que puede ver usando el menú "Mostrar contenido del paquete" en Finder.

La "aplicación" es análoga al directorio creado cuando instala un programa de Windows. De hecho, puede navegar en la aplicación y ejecutar el archivo ejecutable de Unix.

Esto no resuelve su problema, pero sin saber más sobre la aplicación no se resolverá manipulando el paquete. Deberá ponerse en contacto con el desarrollador.

También puede mirar la aplicación Consola, que le permitirá examinar cualquier mensaje de error o advertencia.

Milliways
fuente
Gracias por la info. Resulta que la aplicación se basó en una variable de entorno que se configuró en el shell pero no globalmente (para uso de aplicaciones GUI lanzadas desde Finder o Spotlight, por ejemplo). Es por eso que estaba viendo un comportamiento diferente cuando lo ejecuté desde el shell vs. desde el ícono en el dock. Desde entonces he resuelto el problema estableciendo esa variable a nivel mundial.
user1015721