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

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

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

20
задан Belun 29 August 2010 в 14:23
поделиться

3 ответа

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

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

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

6
ответ дан 30 November 2019 в 00:04
поделиться

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

8
ответ дан 30 November 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: