我正在尝试学习如何在Clojure中使用gen-class
。我从这个简单的脚本开始:
(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
我做错了什么?
答案 0 :(得分:3)
gen-class
需要AOT compilation。
答案 1 :(得分:1)
编辑,另外,检查主类名是否与lein项目文件中定义的类名相匹配。
通常你输入clj文件的(ns)标题。
(ns my.namespace
(:gen-class))
以下是一些例子
(gen-class
:name "some.package.RefMap"
:implements [java.util.Map]
:state "state"
:init "init"
:constructors {[] []}
:prefix "ref-map-")