Что не так с моим простым скриптом класса Clojure?

Я пытаюсь научиться пользоваться gen-class в Clojure. Я начал с этого простого скрипта:

(gen-class :name MyClass :prefix MyClass-)

(defn MyClass-toString[this] "This Is My Class")

(println (MyClass.))

Когда я пытаюсь запустить его, я получаю

    Exception in thread "main" java.lang.IllegalArgumentException: Unable to resolve classname: MyClass

Что я делаю неправильно?

2 ответа

Решение

Вам нужна компиляция AOT для gen-class,

Кроме того, проверьте, что имя основного класса совпадает с именем, определенным в файле проекта lein.

Обычно вы помещаете в (ns) заголовок файла clj.

(ns my.namespace
  (:gen-class))

Вот несколько примеров

(gen-class
    :name "some.package.RefMap"
    :implements [java.util.Map]
    :state "state"
    :init "init"
    :constructors {[] []}
    :prefix "ref-map-")
Другие вопросы по тегам