Was macht eine .app-Datei eigentlich?

11

Ich bin brandneu in Mac OS X (von Windows) und versuche, .app-Dateien zu verstehen. In Windows hatten wir ausführbare Dateien (EXE-Dateien). Wenn Sie eine öffnen, wird Ihr Programm ausgeführt, und alle anderen benötigten Dateien befinden sich an einer anderen Stelle. Unter Mac OS X ähneln diese .app- "Dateien" meines Wissens eher Ordnern, die nicht nur die ausführbare Datei selbst, sondern auch andere Dateien enthalten, die die App möglicherweise benötigt.

Meine Frage ist, was genau machen diese .app-Dateien? Wie unterscheidet es sich vom Bohren in sie und Ausführen der eigentlichen ausführbaren Datei?

Kürzlich habe ich versucht, eine App unter OS X zum Laufen zu bringen. Ich habe sie endlich zum Laufen gebracht (anscheinend musste JAVA_HOME eingestellt werden). Es funktioniert jedoch nur, wenn ich in den Ordner .app bohre und das Shell-Skript ausführe, mit dem die App gestartet wird. Wenn ich auf die .app-Datei / den .app-Ordner doppelklicke, springt die App nur eine Weile im Dock, stoppt schließlich und nichts passiert (außer den Fans, die sich wie verrückt drehen). Das Betriebssystem macht also eindeutig etwas anderes, wenn es versucht, die App über die App-Datei auszuführen, als direkt über die ausführbare Datei.

Ich möchte verstehen, was genau die .app tut, die dazu führt, dass diese App nicht ausgeführt wird, damit ich daran arbeiten kann, das Problem zu beheben. Zu Ihrer Information, die App ist Oracle SQL Developer.

user1015721
quelle
2
.app ist nur eine Erweiterung und unter OSX nicht obligatorisch, damit sich ein Ordner wie eine App verhält. Haben Sie mit der rechten Maustaste auf die betreffende Datei geklickt und den Inhalt angezeigt? Dies kann Ihnen helfen, das Layout zu überarbeiten und den aufgetretenen Fehler zu verfeinern.
bmike
Die Erweiterung .app verwandelt ein reguläres Verzeichnis in ein sogenanntes "Anwendungspaket", das die ausführbare Datei der Anwendung und zugehörige Ressourcen (Symbole, Grafiken, Eigenschaftendateien, Lokalisierungen usw.) enthält. Schauen Sie sich en.m.wikipedia.org/wiki/ an. Application_bundle- Artikel oder Apple-Entwicklerdokumentation.
Alex Popov

Antworten:

12

"Apps" sind "Paketpakete" ist Apple-Fachsprache und werden vom Betriebssystem speziell behandelt. Wie oben erwähnt, handelt es sich tatsächlich um Unix-Verzeichnisse in einem speziellen Format. Die eigentliche ausführbare Unix-Datei befindet sich in einem Unterverzeichnis namens MacOS, das Sie über das Menü "Paketinhalt anzeigen" im Finder anzeigen können.

Die "App" entspricht dem Verzeichnis, das bei der Installation eines Windows-Programms erstellt wurde. Sie können tatsächlich in die App navigieren und die ausführbare Unix-Datei ausführen.

Dies löst Ihr Problem nicht, aber ohne mehr über die App zu wissen, wird es nicht durch Manipulieren des Pakets gelöst. Sie müssen den Entwickler kontaktieren.

Sie können sich auch die Konsolen-App ansehen, mit der Sie Fehler- oder Warnmeldungen überprüfen können.

Milliways
quelle
Danke für die Information. Es stellt sich heraus, dass die App auf einer Umgebungsvariablen basiert, die in der Shell festgelegt wurde, jedoch nicht global (zur Verwendung durch GUI-Apps, die beispielsweise über Finder oder Spotlight gestartet wurden). Aus diesem Grund habe ich ein anderes Verhalten festgestellt, als ich es über die Shell oder über das Symbol im Dock ausgeführt habe. Ich habe das Problem seitdem behoben, indem ich diese Variable global festgelegt habe.
user1015721