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

Создание исполняемого файла jar из проекта clojure?

У меня есть проект clojure, который использует игровой движок slick 2d, который я пытаюсь запустить как исполняемый файл jar. Я создал проект как в Netbeans, так и в Eclipse, и мне не удавалось экспортировать их в исполняемый формат. Он продолжает давать ошибку, не может найти основной класс, а затем дать мой основной класс. Я пробовал редактировать файл манифеста, изменяя имя, в надежде, что он найдет его, но пока не повезет.

Он запускается в среде разработки, но не за его пределами.

4b9b3361

Ответ 1

Прошло некоторое время с тех пор, как я опубликовал этот вопрос, и я подумал, что буду придерживаться того, что нашел, потому что для тех, кому этот вопрос ответил,

Теперь я использую Leiningen для управления моими проектами, хотя я начал играть с cljr, который является дополнением к нему и диспетчером пакетов. Любой из них упрощает создание исполняемого файла jar.

Взяв Leiningen в качестве примера, настройте его с помощью инструкций на сайте, а затем вызовите lein new в своем рабочем пространстве. Это создаст папку для размещения ваших проектов, а также подпапки для вашего источника и проверит файл readme и файл project.clj.

Отредактируйте project.clj с зависимостями, которые вы будете использовать. Dev-зависимости - это зависимости, которые вам нужны исключительно для разработки, такие как swank- clojure, показанные в примере ниже.

(defproject myproject "0.0.1-SNAPSHOT"
  :description "My Personal Project."
  :url "http://example.com/my-project"
  :dependencies [[org.clojure/clojure "1.1.0"]
                 [org.clojure/clojure-contrib "1.1.0"]
                 [**other dependencies**]]
  :dev-dependencies [[swank-clojure "1.2.1"]]
  :main [org.myproject.core])

Я нахожу swank- clojure полезным, так как вы можете набрать lein swank, чтобы запустить экземпляр swank, с которым вы можете подключиться через emacs.

: main определяет, какое пространство имен содержит функцию -main.

Вызов lein uberjar создаст отдельную банку, которая затем запустится.

Надеюсь, это поможет любому, у кого была моя проблема!

Ответ 2

Мне пришлось добавить clojure.jar и clojure -contrib.jar в качестве "зависимости" к проекту, чтобы включить его в банку. как только я понял, что смог запустить полученную банку. Имейте в виду, что Netbeans имеет свой собственный clojure.jar, который используется для запуска плагина самостоятельно, и это не обязательно должно быть тем же самым clojure.jar, что и ваша программа. В Netbeans есть меню для добавления библиотек. Вам нужно будет добавить clojure [- contrib].jar в библиотеки сборки и запуска