2009-02-26 10 views
15

Ich Verteilung ein Java-Programm, wo ich eine doppel klickbare DateiEntspricht Double-Clickable .sh und .bat auf Mac?

java -cp MyProgram.jar;MyLib.jar my.program.Main 

unter Windows laufen soll ich einfach eine BAT-Datei verteilen, für * nix eine ausführbare Datei .sh. Problem ist, doppelklicken Sie auf die .sh-Datei öffnet es einfach in einem Texteditor auf dem Mac. Was soll ich für Mac machen?

Antwort

31

Auf Mac gibt es eine spezifische Erweiterung zum Ausführen von Shell-Skripten durch Doppelklick: Dies ist .command.

+0

funktioniert wie ein Charme! – Epaga

+5

Das ist eine ziemlich alte Frage, aber für diejenigen, die einen '.Kommando bekommen, konnte nicht ausgeführt werden, weil Sie nicht die entsprechenden Zugriffsrechte haben.' Fehler, wie ich war, führen Sie folgende auf Terminal: 'chmod u + x/path/to/file.command' und das sollte dieses Problem beseitigen. – asherbar

+0

@ user2016436 Ich möchte 'chmod u + x' nicht hinzufügen, um die Datei auszuführen, da die ausführbare Datei auf dem Client ausgeführt wird. was soll ich machen? –

2

Sie können ein .sh (Shell Script) verwenden, nachdem MacOSX ist Unix!

4

Für Java-Anwendungen auf dem Mac sollten Sie den Jar Bundler von Apple verwenden (im Developer Tools/Applications/Utilities-Ordner; wirklich ein Symlink zu/usr/share/java/Tools/Jar Bundler). Damit können Sie eine geeignete OS X-Anwendung mit Doppelklick erstellen, einschließlich Voreinstellungen für z. Verwenden Sie die Mac-Symbolleiste, die JVM-Version, das Grafiksystem, die OS X-App-Metadaten und den Klassenpfad/Ressourcen.

1

Die Antwort zur Verwendung des Jar Bundler-Tools ist korrekt, aber wenn Sie eine .sh-Datei verwenden möchten, stellen Sie sicher, dass die Unix-Berechtigungen mit CHMOD auf 755 eingestellt sind und stellen Sie sicher, dass die erste Zeile den Pfad enthält zu einer Shell, die standardmäßig unter Mac OS X installiert ist. Beachten Sie auch, dass der Benutzer selbst dann, wenn das Bit + x gesetzt ist, den Benutzer dennoch fragen kann, ob er es öffnen oder ausführen möchte.