O que um arquivo .app realmente faz?

12

Sou novato no Mac OS X (vindo do Windows) e estou tentando entender arquivos .app. No Windows, tínhamos executáveis ​​(arquivos .exe). Se você abrisse um, seu programa seria executado e quaisquer outros arquivos necessários seriam localizados em outro lugar. No Mac OS X, como eu o entendo, esses "arquivos" .app são realmente mais parecidos com pastas que contêm não apenas o executável em si, mas também outros arquivos que o aplicativo pode precisar.

Minha pergunta é: o que exatamente esses arquivos .app fazem? Como é diferente de perfurar neles e executar o executável real?

Recentemente, eu estava tentando fazer com que um aplicativo fosse executado no OS X. Finalmente consegui fazê-lo funcionar (parece que JAVA_HOME precisava ser definido). No entanto, ele só funciona quando eu detalho a pasta .app e executo o script de shell que inicia o aplicativo. Se eu clicar duas vezes no arquivo / pasta .app, o aplicativo apenas salta no banco dos réus por um tempo, eventualmente pára e nada acontece (exceto os fãs girando como loucos). Tão claramente que o sistema operacional está fazendo algo diferente quando tenta executar o aplicativo a partir do arquivo .app vs. diretamente do executável.

Gostaria de entender o que exatamente o .app está fazendo que faz com que este aplicativo não seja executado, para que eu possa trabalhar para corrigir o problema. Para sua informação, o aplicativo é o SQL Developer da Oracle.

user1015721
fonte
2
.app é apenas uma extensão e não é obrigatória no OSX para que uma pasta se comporte como um aplicativo. Você clicou com o botão direito do mouse no arquivo em questão e revelou o conteúdo? Isso pode ajudá-lo a entender o layout e refinar o erro que está ocorrendo.
Bmike
A extensão .app transforma um diretório comum no chamado "pacote de aplicativos" - que inclui os recursos executáveis ​​e relacionados ao aplicativo (ícones, gráficos, arquivos de propriedades, localizações etc.) Veja en.m.wikipedia.org/wiki/ Artigo Application_bundle ou documentação dos desenvolvedores da Apple.
Alex Popov

Respostas:

12

"apps" são "Pacotes de Pacotes", é um jargão da Apple e são tratados especialmente pelo sistema operacional. Como mencionado acima, esses são realmente diretórios Unix, em um formato especial. O arquivo executável Unix real está em um subdiretório chamado MacOS, que você pode ver usando o menu "Mostrar conteúdo do pacote" no Finder.

O "aplicativo" é análogo ao diretório criado quando você instala um programa do Windows. Você pode realmente navegar no aplicativo e executar o arquivo executável do Unix.

Isso não resolve o seu problema, mas sem saber mais sobre o aplicativo, ele não será resolvido através da manipulação do pacote. Você precisará entrar em contato com o desenvolvedor.

Você também pode consultar o aplicativo Console, que permite examinar qualquer mensagem de erro ou aviso.

Milliways
fonte
Obrigado pela informação. Acontece que o aplicativo se baseou em uma variável de ambiente que foi definida no shell, mas não globalmente (para uso por aplicativos da GUI iniciados pelo Finder ou Spotlight, por exemplo). É por isso que eu estava vendo um comportamento diferente quando o executei do shell vs. do ícone no dock. Desde então, resolvi o problema definindo essa variável globalmente.
user1015721