.app文件实际上是做什么的?


12

我是Mac OS X的全新用户(来自Windows),并且试图了解.app文件。在Windows中,我们有可执行文件(.exe文件)。如果打开一个文件,则程序将运行,并且所需的其他文件位于其他位置。据我所知,在Mac OS X中,这些.app“文件”实际上更像是文件夹,不仅包含可执行文件本身,还包含应用程序可能需要的其他文件。

我的问题是,这些.app文件到底是做什么的?与深入研究它们并运行实际可执行文件有何不同?

最近,我试图使一个应用程序在OS X上运行。我终于使它能够工作(似乎需要设置JAVA_HOME之类的东西)。但是,仅当我钻入.app文件夹并运行启动该应用程序的Shell脚本时,它才起作用。如果我双击.app文件/文件夹,则该应用程序仅在扩展坞中弹起一会儿,最终停止,并且什么也没有发生(除了风扇像疯子一样旋转)。因此,很明显,当操作系统尝试从.app文件运行应用程序时,与直接从其中的可执行文件运行时,操作系统所做的事情有所不同。

我想了解.app到底在做什么,导致该应用无法运行,因此我可以解决此问题。仅供参考,该应用程序是Oracle的SQL Developer。


2
.app只是扩展名,在OSX上不是强制性的,文件夹的行为类似于应用程序。您右键单击有问题的文件并显示内容吗?它可以帮助您调整布局并细化所遇到的错误。
bmike

.app扩展名将常规目录转换为所谓的“应用程序捆绑包”,其中包括应用程序可执行文件和相关资源(图标,图形,属性文件,本地化等)。请访问en.m.wikipedia.org/wiki/ Application_bundle文章或Apple开发人员文档。
Alex Popov

Answers:


12

“ apps”是“ Package Bundles”,是Apple行话,并且经过操作系统特殊处理。如上所述,它们实际上是特殊格式的Unix目录。实际的Unix可执行文件位于名为MacOS的子目录中,您可以使用Finder中的“显示包内容”菜单查看。

“应用程序”类似于安装Windows程序时创建的目录。您确实可以导航到该应用程序,然后运行Unix可执行文件。

这不能解决您的问题,但是如果不了解有关该应用程序的更多信息,将无法通过操作该软件包来解决它。您将需要与开发人员联系。

您还可以查看“控制台”应用程序,该应用程序将使您检查任何错误或警告消息。


谢谢(你的)信息。原来,该应用程序依赖于在外壳程序中设置但不是全局设置的环境变量(例如,供从Finder或Spotlight启动的GUI应用程序使用)。这就是为什么当我从外壳运行它而不是从停靠栏中的图标运行时看到不同的行为的原因。此后,我通过全局设置该变量解决了该问题。
user1015721 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.