4

我正在尝试在 IntelliJ\Cursive 中运行一个简短的 Clojure 程序。我的程序包括两个文件:

项目.clj:

(defproject try3 "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.7.0"]]
  :main try3.core)

和:

核心.clj:

(ns try3.core)

(defn foo
  "I don't do a whole lot."
  [x]
  (println x "Hello, World!"))

(defn -main [] (println "hi"))

我希望当我运行项目时,-main 函数会自动运行。我该怎么做才能做到这一点?

4

2 回答 2

1

我必须更改 IntelliJ 中的 Run 配置才能让程序打印 Hello World 字符串。打开 Run > Edit Configuraitons... 添加测试程序(如果未完成)并确保配置启用了来自 Clojure 命名空间的 Run -main。

IntelliJ 截图

于 2018-05-26T17:09:13.517 回答
0

我假设您想在 IDEA 中创建运行配置。此外,-main方法告诉您可能尝试创建可运行的类。为了实现这一点,您需要修改命名空间声明:

(ns try3.core
  (:gen-class))
; note :gen-class above. It tells clojure that file is intended to 
; be compiled into class instead of be running as a script.

然后您需要创建应用程序类型的 IDEA 运行配置。将您的命名空间指定为主类。看看这条推文中的截图和评论。此外,您可能需要修改“Compiler”>“Clojure Compiler”设置并在那里设置“Compile all Clojure namespaces”。在这些步骤之后,您应该具有可运行的配置。

于 2016-02-09T22:21:35.900 回答