2
我在學clojure與leiningen。我寫了一個簡單的代碼來測試雷音 & Java的罐子命令。這裏是我的project.clj文件:爲什麼使用java -jar調用print函數時不打印?
$ cat project.clj
(defproject hello "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.8.0"]]
:main ^:skip-aot hello.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}})
這裏是我的源代碼:
$ cat src/hello/core.clj
(ns hello.core
(:gen-class))
(defn -main
[& args]
(print "Hello, World!"))
當我運行此代碼雷音,它做工精細。它在這裏
$ lein run
Hello, World!$
所示。當我試圖運行Java的罐子,它沒有工作
$ lein uberjar
Compiling hello.core
Created /home/rishi/hello/target/uberjar/hello-0.1.0-SNAPSHOT.jar
Created /home/rishi/hello/target/uberjar/hello-0.1.0-SNAPSHOT-standalone.jar
$ java -jar target/uberjar/hello-0.1.0-SNAPSHOT-standalone.jar
我不明白,爲什麼我沒有得到所需的輸出與的java -jar?
如果我更換打印與的println在源文件中,我得到了所需的輸出與兩個雷音運行 & Java的罐子。
酷!我明白了。我得到了我的答案。謝謝。 @noisesmith –