將(in-ns 'dbx)
寫入文件並加載它不會改變repl的默認名稱空間(使用cygwin/console)。命名空間仍然是user=>
,而不是dbx=>
。如何在用戶定義的命名空間中啓動REPL?
vikrant[28] clj
Clojure 1.3.0
user=> (load-file "try1.clj")
#(Namespace dbx)
user=>
如何在腳本文件中定義的名稱空間中啓動REPL?
將(in-ns 'dbx)
寫入文件並加載它不會改變repl的默認名稱空間(使用cygwin/console)。命名空間仍然是user=>
,而不是dbx=>
。如何在用戶定義的命名空間中啓動REPL?
vikrant[28] clj
Clojure 1.3.0
user=> (load-file "try1.clj")
#(Namespace dbx)
user=>
如何在腳本文件中定義的名稱空間中啓動REPL?
java -cp .;clojure-1.3.0.jar; clojure.main -e \
"(ns dbx) (clojure.main/repl) (in-ns 'dbx) (clojure.core/use 'clojure.core)"
@Adrian Mouat,謝謝你取消你。 – BLUEPIXY
如果使用Leiningen建立你的項目,然後添加到您的項目的project.clj
文件:
(defproject test "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.2.1"]]
:main test.core)
在你src/test/core.clj
文件,添加它來創建一個test.core
命名空間:
(ns test.core)
(defn -main [& args])
接下來,與萊寧寧建立您的項目與lein compile
。然後輸入lein repl
以在您的名稱空間中調用REPL。在REPL提示看起來像:
test.core=>
我推薦使用Carlos的[更新的答案](http://stackoverflow.com/a/24364816/109618)。 –
(ns dbx) (clojure.main/repl) (in-ns 'dbx) (clojure.core/use 'clojure.core)
如今是:repl-options {:init-ns foo.bar}
。
見https://github.com/technomancy/leiningen/blob/master/sample.project.clj
2017年不適用於我 –
@LincolnBergeson它仍然適用於我使用最新的leiningen - 版本2.7.1,並使用'lein new app'創建了一個全新的應用程序項目。 –
有一個更好的方法在最近Clojure的版本中做到這一點:
java -cp myapp.jar clojure.main -m myapp.core
除了Carlos' answer暗示:repl-options {:init-ns foo.bar}
,我也有過成功與添加:dev {:main user}
我profile.clj。
爲了讓更多的上下文:
;; /foo/profile.clj
...
:main foo.core
:dev {:main user
:source-paths ["dev"]}`
...
;; /foo/dev/user.clj
(ns user
(:require
[clojure.pprint :refer (pprint)]
[clojure.repl :refer :all]
[clojure.string :as str]
[clojure.test :refer [run-tests run-all-tests]]
[clojure.tools.namespace.repl :refer [refresh refresh-all]]))
(NS DBX) (clojure.main/REPL) (以納秒 'DBX) (clojure.core /使用' clojure.core) – vikbehal
只是一個快速評論格式化。只需複製/粘貼cygwin控制檯中的文本,而不是簡單地對其進行屏幕截圖,就會更簡潔,更容易。 –