Моя цель - включить в zip-файл ярлык, вместо того, чтобы указывать своим клиентам открыть терминал и запустить скрипт оболочки.
Мой развертываемый по сути выглядит так:
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
Скрипт в run.sh
:
#!/bin/sh
java -jar app.jar
В каталоге намного больше; Достаточно сказать, что мне нужно запустить скрипт из каталога Deliverable, поскольку мне нужно получить доступ к путям относительно него. Тем не менее, я не могу гарантировать, где клиент откроется Deliverable.zip
(может быть домашний каталог, может быть прямо в каталоге загрузок и т. Д.)
Я нашел это , что описывает , как создать новый рабочий процесс в Automator, а затем сохранить его в качестве приложения для запуска сценария оболочки. Я пытался сделать это, чтобы обернуть, run.sh
но он говорит, что не может найти run.sh
.
Кто-то предложил мне использовать applecript, а также прислал мне ссылку на то, как использовать applecript для переключения в текущий каталог; в automator есть «действие» appleScript; поэтому я создал новый рабочий процесс и сохранил его как приложение. Вот как это выглядит:
Код:
on run {input, parameters}
tell application "Finder"
set current_path to container of (path to me) as alias
end tell
do shell script "java -jar app.jar"
return input
end run
И это ошибка, которую я получаю при запуске:
Да ладно, это должно быть довольно просто. Что я здесь не так делаю?