【问题标题】:leiningen run a AOT compiled java classleiningen 运行一个 AOT 编译的 java 类
【发布时间】:2012-06-22 03:44:03
【问题描述】:

上下文

如果我希望 Lein 1.7 开始时加载特定的类,我会这样做:

:repl-init init.init

现在,我不想让 lein 加载 *.clj 文件,而是希望 lein 执行“java Foo”的等效操作,其中 Foo 是 classes/Foo.class

问题:

我的 project.clj 看起来很像:

(defproject ...
  :aot [Foo]
  ???? )

我要放什么????通过执行“java Foo”使“lein repl”启动?

谢谢!

【问题讨论】:

    标签: clojure leiningen


    【解决方案1】:

    如果我理解您的问题,您仍然可以为此使用 :repl-init,方法是调用要在 repl 加载的命名空间中预加载的类。在此示例中,我使用 println 语句作为您想要完成的设置的替代 :-)

    project.clj:

    (defproject foooo "1.0.0-SNAPSHOT"
      :description "FIXME: write description"
      :dependencies [[org.clojure/clojure "1.3.0"]]
      :aot [foooo.core]
      :main foooo.core
      :repl-init foooo.core)
    

    core.clj

    (ns foooo.core
      (:gen-class))
    (println "setting up for fun")
    
    (defn -main [])
    

    编译: arthur@a:~/foooo$ lein 编译 编译 foooo.core 编译成功。

    运行:

    arthur@a:~/foooo$ CLASSPATH=./lib/clojure-1.3.0.jar:./classes/ java foooo.core 1
    setting up for fun
    

    或:

    arthur@a:~/foooo$ lein run
    setting up for fun
    

    回复:

    arthur@a:~/foooo$ lein repl
    REPL started; server listening on localhost port 63392
    setting up for fun
    foooo.core=>  
    

    【讨论】:

    • 问题:我误解了这个问题。我在 :gen-class 的主线程中运行 JavaFx,显然,根据stackoverflow.com/questions/3104193/…,JavaFX 必须是主线程——这解释了为什么没有弹出。
    猜你喜欢
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多