Wie Programme (.app) mit Argumenten starten?

firefoxuser

firefoxuser

Aktives Mitglied
Thread Starter
Dabei seit
27.04.2005
Beiträge
450
Reaktionspunkte
1
Hallo,
Es ist jetzt schon öfters vorgekommen, das bei bestimmten Anleitung der Start eines Programms mit Argumenten (bsp. -fx) benötigt wird.
Ich weiß natürlich, wie so etwas unter Windows, oder Linux funktioniert, aber wie macht man das, wenn man eine Mac Binary in Form einer *.app Datei hat?
Code:
/Applications/MyApp.app/Contents/MacOS $ ./MyApp someargument
wird bei mir übrigens mit -bash: ./MyApp: cannot execute binary file beantwortet.
 
Zum Starten einer .app gibt es "open", das leitet aber keine Kommandozeilenargumente weiter. Direktes Ausführen eines Binaries im Terminal mit Argumenten muss aber klappen, nur heissen die binaries oft nicht so wie das Präfix des .app-Verzeichnisses.

Im Zweifelsfalle in ../Contents/Info.plist den Wert von CFBundleExecutable mit dem PropertyList Editor lesen oder einfach mit ls -l nachschauen. ;)
 
Zuletzt bearbeitet:
Hi,

hast du nen Intelmac und das Programm ist nur für PowerPC? Ansonsten könnte ich mir das nämlich nicht erklären. Programme kann ich schon immer direkt starten (cd /Applications/iTunes.app/Contents/MacOS && ./iTunes).

Parameter über die Kommandozeile sind bei Mac OS X-Programmen sehr unüblich, man bekommt die via Cocoa-Funktionen übergeben (zum Beispiel Dateinamen, wenn man aus dem Finder aufgerufen wird). Bei den UNIX-Programmen, die dabei sind, funktioniert das natürlich wie gewohnt (zB ls/cd/ssh, klar...). Als Programmierer könnte man die übergebenen Parameter natürlich auswerten, hab mir aus Neugierde schon mal ne Testanwendung dafür geschrieben.

cu
 
firefoxuser schrieb:
Hallo,
Es ist jetzt schon öfters vorgekommen, das bei bestimmten Anleitung der Start eines Programms mit Argumenten (bsp. -fx) benötigt wird.
...
Und worum geht es genau?
 
Also genau geht es um das Spiel Jedi Knight: Jedi Academy, dass man für einen bestimmten MOD mit dem Argument "+set fs_game "MBII"" starten muss.
/Applications/Jedi Academy/Jedi Academy MP.app/Contents/MacOSClassic $ ./Jedi\ Academy\ MP +set fs_game "MBII"
-bash: ./Jedi Academy MP: cannot execute binary file
 
Was sagt
Code:
ls -la "/Applications/Jedi Academy/Jedi Academy MP.app/Contents/MacOSClassic"
 
Hi,

ja, bei Classic Anwendungen ist das etwas anderes. Versuch das mal so:
/System/Library/Frameworks/Carbon.framework/Versions/Current/Support/LaunchCFMApp /Applications/Jedi\ Academy/Jedi\ Academy\ MP.app/Contents/MacOSClassic/Jedi\ Academy\ MP +set fs_game "MBII"

cu
 
Seit wann liegen Classic Anwendungen in *.app Paketen vor?
 
Hi,

Maceis: Weiß ich nicht. Könnte auch sein, dass es eine CFM-Anwendung ist, die müssen auch im Folder MacOSClassic abgelegt werden.

cu
 
sECuRE schrieb:
/System/Library/Frameworks/Carbon.framework/Versions/Current/Support/LaunchCFMApp /Applications/Jedi\ Academy/Jedi\ Academy\ MP.app/Contents/MacOSClassic/Jedi\ Academy\ MP +set fs_game "MBII"
Danke, das Startet zumindestens das Spiel (das übrigens sonst auch immer ohne Classic lief), allerdings wird das Argument trotzdem nicht übergeben.(das Game startet ohne den MOD)

Danke!
 
Hi,

firefoxuser schrieb:
Danke, das Startet zumindestens das Spiel (das übrigens sonst auch immer ohne Classic lief), allerdings wird das Argument trotzdem nicht übergeben.(das Game startet ohne den MOD)
Ist dann also einfach eine CFM-Anwendung. Vielleicht muss man beim Mac die Parameter anders übergeben oder diese Einstellung fest in irgendeiner Konfigurationsdatei vornehmen? Frag doch einfach mal die Entwickler per Mail.

cu
 
Zurück
Oben Unten