2015-03-09 5 views
3

Я пытаюсь понять, как упаковать приложение командной строки, написанное на Clojure для распространения. Я не хочу, чтобы пользователям приходилось использовать java -jar myproject.jar arg1 arg2 для запуска программы. В PHP есть что-то, называемое файлами «Phar», которые являются в основном исполняемыми zip-файлами, поэтому они включают в себя shebang, который сообщает системам POSIX, как их распаковывать и запускать.Leiningen: Создайте исполняемую банку для запуска без java -jar

Я видел other Clojure apps, которые позволяют установить файл jar chmod +x, а затем выполнить его непосредственно. Как они достигают этого? Убержар, похоже, делает банку, которая требует префикса java -jar.

+0

Вы посмотрели варианты java, например http://stackoverflow.com/a/20565393/3181392? – cfrick

ответ

2

Ах, я только что нашел ответ на свой вопрос. Это не стандартная функциональность, и вам в основном приходится сворачивать самостоятельно: https://github.com/tailrecursion/boot/blob/master/Makefile#L21

+1

Да, я собирался ответить на это, они в основном добавляют содержимое банки в конце скрипта bash и запускают это с помощью java -jar. Ява-пусковая установка игнорирует содержимое скрипта и начинает загружать банку, где она начинается, очень приятно. –

Смежные вопросы