Что на самом деле делает файл .app?

12

Я новичок в Mac OS X (из Windows) и пытаюсь понять файлы .app. В Windows у нас были исполняемые файлы (файлы .exe). Если вы откроете один из них, ваша программа запустится, а любые другие необходимые ей файлы будут расположены в другом месте. В Mac OS X, насколько я понимаю, эти .app-файлы действительно больше похожи на папки, которые содержат не только сам исполняемый файл, но и другие файлы, которые могут понадобиться приложению.

У меня вопрос, что именно делают эти .app файлы? Как это отличается от сверления в них и запуска фактического исполняемого файла?

Недавно я пытался заставить приложение работать на OS X. Я наконец заставил его работать (кажется, что JAVA_HOME должен быть установлен). Однако это работает только тогда, когда я сверляю в папку .app и запускаю сценарий оболочки, который запускает приложение. Если я дважды щелкну по файлу / папке .app, приложение на некоторое время просто подпрыгивает в доке, в конце концов останавливается и ничего не происходит (кроме фанатов, вращающихся как сумасшедшие). Очевидно, что ОС делает что-то другое, когда пытается запустить приложение из файла .app, а не непосредственно из исполняемого файла внутри.

Я хотел бы понять, что именно делает приложение .app, из-за которого приложение не запускается, и я могу решить эту проблему. К вашему сведению, приложение является разработчиком Oracle SQL.

user1015721
источник
2
.app - это просто расширение, не обязательное для OSX, чтобы папка работала как приложение. Вы щелкнули правой кнопкой мыши по файлу и раскрыли его содержимое? Это может помочь вам разобраться в макете и исправить ошибку, с которой вы столкнулись.
bmike
Расширение .app превращает обычный каталог в так называемый «комплект приложений», который включает исполняемый файл приложения и связанные с ним ресурсы (значки, графику, файлы свойств, локализации и т. д.). Загляните на en.m.wikipedia.org/wiki/ Статья Application_bundle или документация для разработчиков Apple.
Алексей Попов

Ответы:

12

«apps» - это «Package Bundles» - это Apple Jargon, и они обрабатываются ОС специально. Как упоминалось выше, это фактически каталоги Unix в специальном формате. Фактически исполняемый файл Unix находится в подкаталоге MacOS, который можно увидеть в меню «Показать содержимое пакета» в Finder.

«Приложение» аналогично каталогу, созданному при установке программы Windows. Вы действительно можете перейти в приложение и запустить исполняемый файл Unix.

Это не решит вашу проблему, но, не зная больше о приложении, оно не будет решено путем манипулирования пакетом. Вам нужно будет связаться с разработчиком.

Вы также можете посмотреть на консольное приложение, которое позволит вам изучить любые сообщения об ошибках или предупреждения.

Milliways
источник
Спасибо за информацию. Оказывается, приложение полагалось на переменную среды, которая была установлена ​​в оболочке, но не глобально (например, для использования приложениями с графическим интерфейсом, запущенными из Finder или Spotlight). Вот почему я видел другое поведение, когда запускал его из оболочки по сравнению со значком в доке. С тех пор я решил проблему, установив эту переменную глобально.
user1015721