3

環境

特定のクラスをロードした状態で 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」を起動するには?

ありがとう!

4

1 に答える 1

4

私があなたの質問を理解していれば、repl によってロードされる名前空間にプリロードしたいクラスを呼び出すことで、これに :repl-init を使用できます。この例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 compile コンパイル中 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=>  
于 2012-06-20T03:13:01.613 に答える