引用从AOT编译生成的Clojure类?

引用从AOT编译生成的Clojure类?,clojure,Clojure,此代码不使用lein compile编译。重要的部分是gen类和-main功能。代码使用JavaFX8和Clojure1.7,但这些只是细节。我的问题是关于AOT编译以及如何引用生成的类 (ns.app) (:进口 [javafx.application] [javafx.scene] [javafx.scene.layout堆栈窗格] [javafx.stage]) (:gen类 :命名为.app.app :扩展javafx.application.application :main(真) (

此代码不使用
lein compile
编译。重要的部分是
gen类
-main
功能。代码使用JavaFX8和Clojure1.7,但这些只是细节。我的问题是关于AOT编译以及如何引用生成的类

(ns.app)
(:进口
[javafx.application]
[javafx.scene]
[javafx.scene.layout堆栈窗格]
[javafx.stage])
(:gen类
:命名为.app.app
:扩展javafx.application.application
:main(真)
(defn开始
[^应用程序
^舞台
{:键[宽度高度标题]:as opts}]
(让[根目录(堆栈窗格)。)
场景(场景.根宽度高度)]
(如果标题(.setTitle阶段标题))
(.舞台场景)
(.表演舞台)
(defn-启动
[应用程序阶段]
(开始应用阶段{:标题“应用”:宽度800:高度600}))
(defn-停止
[应用程序]
(println“-stop”))
(defn-main)
[&args]
(应用程序/启动.app.app args))
我的
项目.clj
包含:

:dependencies [[org.clojure/clojure "1.7.0-alpha4"]]
:aot [the.app]
:main the.app
错误消息是:

Caused by: java.lang.ClassNotFoundException: the.app.App
我本以为编译会创建.app.app。如何解决引用类的问题?

我发现使用works(而不是直接引用类):

(defn-main
[&args]
(应用程序/启动(解析“the.app.app”参数))
这意味着当
defn
表单被激活时,
app.app
不必存在。该类只需要在运行时存在,这将在AOT编译之后发生