Подтвердить что ты не робот

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

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

как мне упаковать мою программу и доставить (сама программа с банками clojure)?

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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