Que fait réellement un fichier .app?

12

Je suis tout nouveau sur Mac OS X (venant de Windows) et j'essaie de comprendre les fichiers .app. Sous Windows, nous avions des exécutables (fichiers .exe). Si vous en ouvrez un, votre programme s'exécute et tous les autres fichiers dont il a besoin se trouvent ailleurs. Dans Mac OS X, si je comprends bien, ces "fichiers" .app sont vraiment plus comme des dossiers qui contiennent non seulement l'exécutable lui-même mais aussi d'autres fichiers dont l'application peut avoir besoin.

Ma question est, que font exactement ces fichiers .app? En quoi est-ce différent de l'explorer et d'exécuter l'exécutable réel?

Récemment, j'essayais de faire fonctionner une application sur OS X. J'ai finalement réussi à la faire fonctionner (il semble que JAVA_HOME devait être défini). Cependant, cela ne fonctionne que lorsque j'explore le dossier .app et exécute le script shell qui démarre l'application. Si je double-clique sur le fichier / dossier .app, l'application rebondit simplement sur le dock pendant un certain temps, s'arrête finalement et rien ne se passe (à part les fans qui tournent comme des fous). Il est donc clair que le système d'exploitation fait quelque chose de différent lorsqu'il essaie d'exécuter l'application à partir du fichier .app par rapport directement à l'exécutable.

Je voudrais comprendre ce que fait exactement l'appli qui empêche cette application de fonctionner afin que je puisse travailler pour résoudre le problème. Pour info, l'application est le développeur SQL d'Oracle.

user1015721
la source
2
.app est juste une extension et n'est pas obligatoire sur OSX pour qu'un dossier se comporte comme une application. Avez-vous cliqué avec le bouton droit sur le fichier en question et révélé le contenu? Cela pourrait vous aider à améliorer la mise en page et à affiner l'erreur que vous rencontrez.
bmike
L'extension .app transforme un répertoire normal en ce que l'on appelle un "ensemble d'applications" - qui comprend l'exécutable de l'application et les ressources associées (icônes, graphiques, fichiers de propriétés, localisations, etc.). Consultez en.m.wikipedia.org/wiki/ Article Application_bundle ou documentation des développeurs Apple.
Alex Popov

Réponses:

12

«apps» sont des «Bundles de packages» est le jargon d'Apple et sont traités spécialement par le système d'exploitation. Comme mentionné ci-dessus, il s'agit en fait de répertoires Unix, dans un format spécial. Le fichier exécutable Unix réel se trouve dans un sous-répertoire nommé MacOS, que vous pouvez voir en utilisant le menu "Afficher le contenu du package" dans le Finder.

L '"application" est analogue au répertoire créé lors de l'installation d'un programme Windows. Vous pouvez en effet naviguer dans l'application et exécuter le fichier exécutable Unix.

Cela ne résout pas votre problème, mais sans en savoir plus sur l'application, il ne sera pas résolu en manipulant le package. Vous devrez contacter le développeur.

Vous pouvez également consulter l'application Console, qui vous permettra d'examiner les messages d'erreur ou d'avertissement.

Milliways
la source
Merci pour l'info. Il s'avère que l'application s'appuyait sur une variable d'environnement qui était définie dans le shell mais pas globalement (pour une utilisation par les applications GUI lancées depuis Finder ou Spotlight, par exemple). C'est pourquoi je voyais un comportement différent lorsque je l'ai exécuté à partir du shell par rapport à l'icône du dock. J'ai depuis résolu le problème en définissant cette variable globalement.
user1015721