评论者:sonicsmooth
感谢您发布这个补丁。静态初始化器的问题使得难以同时进行AOT和交互式开发JavaFX。我今天克隆了Clojure 1.9.0-master源代码并应用了这个补丁,但示例Clojure项目还是显示"运行静态初始化器!"这已经通过我的实际用例得到了验证。如果首先启动JFXPanel,错误就会消失。截至2017年9月,有替代方案吗?例如,定义代理的另一种方式或延后到运行时?感谢。
$ lein clean;lein repl
编译1个源文件到C:\dev\clojure\clojure-static-initialization\target\classes
编译clojure-static-initialization.gen-class-demo
编译clojure-static-initialization.proxy-demo
运行静态初始化器!
Clojure 1.9.0-master-SNAPSHOT
user=> (def lcp (proxy (链接: javafx.scene.control.ListCell) (链接: )))
编译器异常java.lang.ExceptionInInitializerError,编译:(C:\dev\clojure\clojure-static-initialization\target\f31ee90298a1be447b450330204c3c0806c08b96-init.clj:1:10)
$ lein clean;lein repl
编译1个源文件到C:\dev\clojure\clojure-static-initialization\target\classes
编译clojure-static-initialization.gen-class-demo
编译clojure-static-initialization.proxy-demo
运行静态初始化器!
Clojure 1.9.0-master-SNAPSHOT
user=> (def jfxpanel (javafx.embed.swing.JFXPanel.))
'user/jfxpanel
user=> (def lcp (proxy (链接: javafx.scene.control.ListCell) (链接: )))
'user/lcp