Запуск программы Clojure - PullRequest
       3

Запуск программы Clojure

20 голосов
/ 29 августа 2010

говорят, что я создаю программу в ближайшем будущем, и я должен доставить ее клиенту.клиент имеет некоторые компьютерные знания, но он не знает / не хочет запустить repl, загрузить мою программу и запустить ее.он хочет дважды щелкнуть по exe-файлу или запустить скрипт оболочки

как мне упаковать свою программу и доставить (сама программа с jar-файлами clojure)?

Ответы [ 4 ]

21 голосов
/ 29 августа 2010

У вас есть несколько вариантов:

  • Скомпилируйте программу в классы Java и укажите один из основных методов.Упакуйте их в исполняемый файл.
  • Как указано выше, если вы используете Leiningen, вы можете аккуратно собрать все с помощью lein uberjar, убедившись в том, что вы объявили основной класс.исполняемый файл jar (без основного класса) и создайте сценарий оболочки / пакетный файл для выполнения нужного класса, например java -cp ./clojure.jar:./myprogram.jar com.my.runthis.class
  • Просто упакуйте свои файлы .clj в файл jar и используйте сценарий оболочки / пакетного запускаrepl, а затем автоматически выдает команды, например java -cp ./clojure.jar:./myprogram.jar clojure.main -e "(in-ns 'your-ns)(start-your-program)" -r
8 голосов
/ 29 августа 2010

Простейшим подходом было бы позволить leiningen обрабатывать банку для вас, она упаковывает все в одну толстую банку, и это все, что вам нужно доставить, как и любое другое java-приложение. Все, что нужно сделать клиенту - это дважды щелкнуть по нему. Если вам нужен файл .exe, launch4j может создать его для вас, он также может выполнить установку JRE, если он еще не установлен на клиентском компьютере. Вам не нужны bash-скрипты и т. Д.

6 голосов
/ 29 августа 2010

Вы можете использовать leiningen для создания uberjar, как писал Грег Харман ... Я лично использую maven для создания автономного jar со всеми зависимостями, объявления основного класса - это упрощает его запуск с помощью команды java -jar your-jar-file. Я также использую Izpack для создания инсталляторов для моих программ

2 голосов
/ 11 июля 2011

Лучший подход, который я нашел для этого, - cake bin, если вы используете торт. Он сгенерирует упакованный бинарный файл для вас (вероятно, такой же или похожий на launch4j).

...