나는 leiningen 과 함께 clojure 를 배우고 있습니다. lein & java -jar 명령 을 테스트하는 간단한 코드를 작성했습니다 . 다음은 내 project.clj 파일입니다.
$ 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으로 실행하면 잘 작동합니다. 여기에 표시됩니다.
$ lein run
Hello, World!$
java -jar 실행하려고 할 때 작동하지 않았습니다.
$ 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 소스 파일에, 나는 모두 출력에 필요한있어 lein 실행 및 자바 -jar을 .
프로세스 출력이 버퍼링됩니다. print
출력을 플러시하지 않습니다. 대부분의 경우 출력 스트림은 줄 바꿈에 자동으로 플러시되도록 설정되므로 println
디스플레이가 표시됩니다. 개행없이 플러시해야하는 경우 (flush)
함수를 호출 할 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다