gpt4 book ai didi

java - 您如何在 eclipse 中设置一个 clojure 项目,以便在您单击运行时启动它?

转载 作者:行者123 更新时间:2023-11-29 05:25:14 24 4
gpt4 key购买 nike

这是我第一次接触 Clojure,但我知道 lisp 和 java,但我很快就厌倦了这个 REPL!我认为当我点击运行时,应用程序运行并不过分,所以我在我的项目中添加了一个 :main。

(defproject Physics "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
:aot [Physics.core]
:main Physics.core
)

这就是我现在得到的

Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: -main in this context, compiling:(Physics/core.clj:19:3)

应用程序在尝试让它自动启动之前工作正常,但在我将 :main 指令添加到我的项目后它坏了,删除 :main 指令根本没有帮助,因为我现在遇到了同样的错误。如果我尝试从 REPL 手动加载应用程序,则找不到它。

;; Clojure 1.5.1
=> (load "core")
FileNotFoundException Could not locate core__init.class or core.clj on classpath: clojure.lang.RT.load (RT.java:443)

重新启动 eclipse 解决了这个问题...

这是位于 src/Physics/core.clj 中的代码(根据初步答案修改)

(ns Physics.core (:gen-class))

(declare -main)

(defn app-name []
"Physics"
)

(defn version []
"0.0.1-alpha"
)

(defn reload []
(load "core")
(load "config")
(load "desktop")
)

(defn author []
"Ralph Ritoch"
)

(defn author-email []
"Ralph Ritoch <rritoch@gmail.com>"
)

(defn copyright []
"Copyright \u00A9 2014 Ralph Ritoch. All rights reserved."
)

(defn banner []
(println (str (app-name) " v" (version)))
(println (copyright))
)

(defn restart []
(reload)
(-main)
)

(defn -main [& args]
(ns Physics.core)
(banner)
(load "config")
(load "desktop")
(eval '(Physics.desktop/create))
)

主要问题仍然存在。单击运行时如何启动它?当我点击立即运行时,我得到的只是一条绿色的小消息,上面写着#'Physics.core/-main,但应用程序实际上并没有运行。

最佳答案

  1. ns Physics.core 中应该有一个-main 函数
  2. => (load "core")直接在src文件夹中查找core.clj。您应该改用 (load "Physics/core")

  3. (定义重启[]
    (重新加载)
    (-主要的)
    )
    这里,你应该在这个表单之前写上(declare -main)

关于java - 您如何在 eclipse 中设置一个 clojure 项目,以便在您单击运行时启动它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22906321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com