程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

为什么使用 java -jar 调用时打印功能不打印?[复制]

发布于2021-10-15 01:03     阅读(1350)     评论(0)     点赞(17)     收藏(2)


我正在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替换print,我会同时获得lein runjava -jar所需的输出


解决方案


您的流程输出已缓冲。print不刷新输出。大多数情况下,您的输出流将设置为自动刷新换行符,这就是println显示的原因如果您需要在没有换行符的情况下刷新,您可以调用该(flush)函数。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/301733/a124b09bc7ebd9711cb6/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)