говорит, что я создаю программу в ближайшем будущем, и я должен доставить ее клиенту. клиент имеет некоторые компьютерные знания, но он не знает / не хочет запустить repl, загрузить мою программу и запустить ее. он хочет дважды щелкнуть по exe-файлу или запустить скрипт оболочки
, как мне упаковать свою программу и доставить (сама программа с помощью jar-файлов clojure)?
У вас есть несколько вариантов:
lein uberjar
, убедившись, что вы объявили основной класс. java -cp ./clojure.jar:./myprogram.jar com.my.runthis.class
java -cp ./clojure.jar:./myprogram.jar clojure.main -e "(in-ns 'your-ns)(start-your-program)" -r
Вы можете использовать leiningen для создания uberjar, как писал Грег Харман... Я лично использую maven для создания автономной банки со всеми зависимостями, объявляю основной класс - это упрощает его запуск с помощью команды 'java -jar your-jar-file'. Я также использую Izpack для создания инсталляторов для своих программ
Простейшим подходом было бы позволить leiningen управлять банкой за вас, она упаковывает все в одну толстую банку, и это все, что вам нужно доставить, как и любое другое приложение Java. Все, что нужно сделать клиенту, это дважды щелкнуть по нему. Если вам нужен файл .exe, launch4j может создать его для вас, он также может обрабатывать установку JRE, если он еще не установлен на клиентском компьютере. Вам не нужны сценарии bash и т. д.