Clojure/Java - 弹出窗口

4
有时在Clojure中使用外部库时,会弹出一个名为clojure.main的窗口。它看起来像一个新应用程序,并且有一个可爱的小咖啡杯作为它的图标。
请原谅我对Java领域的无知——我意识到这可能是个愚蠢的问题,但我在互联网上和谷歌上都找不到答案。
这个应用程序在做什么?为什么会出现?
编辑:运行的是Leiningen 2、Clojure 1.3和Noir 1.2.1。这是在OSX上进行的。
据我所知,触发这个窗口的代码是以下函数:
(defn make-thumbnail [filename new-filename width]
    (let [img (javax.imageio.ImageIO/read (as-file filename))
            imgtype (java.awt.image.BufferedImage/TYPE_INT_ARGB)
            width (min (.getWidth img) width)
            height (* (/ width (.getWidth img)) (.getHeight img))
            simg (java.awt.image.BufferedImage. width height imgtype)
            g (.createGraphics simg)]
        (.drawImage g img 0 0 width height nil)
        (.dispose g)
        (javax.imageio.ImageIO/write simg "png" (as-file new-filename))))

1
你能否发布一些代码,例如你的project.clj和core.clj(或主要的Clojure -- .clj -- 应用程序文件)?这个平台是什么?这听起来几乎像你正在Windows上运行。 - octopusgrabbus
2个回答

6

1
通过在project.clj中添加:jvm-opts ["-Xmx1g" "-Djava.awt.headless=true"]进行修复。谢谢! - Honza Pokorny
@Jonathon 您需要编写哪种类型的应用程序才能得到这个结果?我并不是从 Java 背景中来,所以我一直在使用几个 Java 调用来编写本地 Clojure。 - octopusgrabbus
我认为任何进行图像处理的服务器端应用程序几乎都需要这个指令。那是我唯一需要使用它的时候。 - Jonathan
当我第一次初始化JNA(Java Native Interface)时,我也遇到了同样的弹出窗口问题,这个方法解决了它。 - Phil Crosby

0
正如 Honza Pokorny 所说,在 project.clj 中的 jvm-opts 中添加 "-Djava.awt.headless=true"。
应该像这样:
:jvm-opts ["-Xmx1g" "-Djava.awt.headless=true"]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接