Relativer Pfad In .command-datei

V

vbtricks

Mitglied
Thread Starter
Dabei seit
25.09.2007
Beiträge
128
Reaktionspunkte
5
Salut,

ähnlich zu einem bash-Script möchte ich per Doppeklick eine Java-Datei mit SoyLatte starten lassen, in bash sähe das wie folgt aus:
Code:
#!/bin/bash
linux/bin/java -jar app.jar
analog wollte ich unter Mac OS X dann
Code:
soylatte/bin/java -jar app.jar
schreiben (in linux bzw. soylatte liegen Java-Versionen, die nicht installiert werden müssen, sondern direkt ausführbar sind). Die .command-Datei liegt dabei im gleichen Verzeichnis wie die Datei app.jar, trotzdem meckert java unter Mac OS X, dass es die app.jar nicht findet. Wenn ich aber im Terminal in das Verzeichnis der app.jar wechsle und dort
Code:
soylatte/bin/java -jar app.jar
ausführe, wird die app.jar ohne Probleme gefunden. Für meinen Einsatzzweck kann ich aber weder den absoluten Pfad der app.jar angeben (es sei denn, ich könnte ihn im .command-Skript ermitteln) oder das Java von Apple verwenden.

Wie bekomme ich die relative Pfadangabe doch noch hin? Danke im Voraus,


Stefan
 
Salut,

hm, dass da so gar keine Antwort kommt, wundert mich doch etwas. Mit einer derart eingeschränkten grafischen Oberfläche hätte ich eigentlich schon gedacht, dass sich zumindest einige Mac-User intensiver mit der Shell beschäftigt hätten.

Also hier die Lösung:
Code:
cd $(dirname "$0")
soylatte/bin/java -jar app.jar
Erste Zeile wechselt in das Verzeichnis, in dem die .command-Datei liegt. .command-Dateien werden aus dem Home-(sry. Users-)Verzeichnis des Benutzers mit absoluter Pfadangabe gestartet, deshalb klappt das (anders zu Linux, OpenSolaris und Windows) nicht.


Stefan
 
Zurück
Oben Unten