Java AWT/Swing使REPL崩溃

Java AWT/Swing使REPL崩溃,java,swing,clojure,awt,leiningen,Java,Swing,Clojure,Awt,Leiningen,lein repl关于项目: user=> (javax.swing.JFrame. "My Frame") SocketException Connection reset java.net.SocketInputStream.read (SocketInputStream.java:209) java.net.SocketInputStream.read (SocketInputStream.java:141) java.io.Buffe

lein repl
关于项目:

user=> (javax.swing.JFrame. "My Frame")
SocketException Connection reset
        java.net.SocketInputStream.read (SocketInputStream.java:209)
        java.net.SocketInputStream.read (SocketInputStream.java:141)
        java.io.BufferedInputStream.fill (BufferedInputStream.java:246)
        java.io.BufferedInputStream.read (BufferedInputStream.java:265)
        java.io.FilterInputStream.read (FilterInputStream.java:83)
        java.io.PushbackInputStream.read (PushbackInputStream.java:139)
        clojure.tools.nrepl.bencode/read-byte (bencode.clj:84)
        clojure.tools.nrepl.bencode/read-byte (bencode.clj:-1)
        clojure.tools.nrepl.bencode/read-token (bencode.clj:236)
        clojure.tools.nrepl.bencode/read-token (bencode.clj:234)
        clojure.tools.nrepl.bencode/read-bencode (bencode.clj:254)
        clojure.tools.nrepl.bencode/read-bencode (bencode.clj:251)
Bye for now!
然而,在没有项目的新项目/
lein repl
上,它确实有效

user=> (javax.swing.JFrame. "My Frame")
#object[javax.swing.JFrame 0x2ee69c3e "javax.swing.JFrame[frame0,0,0,0x0,invalid,hidden,layout=java.awt.BorderLayout,title=My Frame,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]"]
我更新了我的JDK和JRE,但没有任何帮助

我最初在尝试使用seesaw时注意到了这一点(seesaw和Clojure是我唯一的项目依赖项)。它也崩溃了,然后我注意到即使试图直接使用Swing也会导致崩溃。从依赖项中删除跷跷板使其再次工作。现在,我的项目还有其他依赖项(它们都与AWT/Swing无关,它们都是:clojure 1.8.0、clj http 2.3.0、data.json 0.2.6、驼峰蛇串0.4.0和clj时间0.13.0),并且这种情况再次发生。我将试着看看是否能找到最小的案例。
编辑:当只有Clojure和[clj http“2.3.0”]或只有Clojure和跷跷板时,情况最简单

我还试图确保我是从EDT运行的(使用
EventQueue.invokeLater
),但没有帮助,程序崩溃了

然后我试着只使用AWT
(java.AWT.Frame.)
,我得到了同样的崩溃

最后,fwiw,这发生在:
REPL-y 0.3.7,nREPL 0.2.12
Clojure 1.8.0
Java HotSpot(TM)64位服务器VM 1.8.0_121-b13
Windows 10 Pro x64

我现在也试着做了一个uberjar,它似乎很好用。
因此,它似乎只会使
lein repl
和苹果酒的repl崩溃(所以我假设是nREPL?)


我如何诊断和解决这个问题?

我无法在最小的项目上重现它

(defproject km "0.1.0-SNAPSHOT"
   :dependencies [
     [org.clojure/clojure "1.8.0"]
     [clj-http "2.3.0"]
   ]
)
Clojure 1.8.0 Java HotSpot(TM)64位服务器VM 1.8.0_112-b16 回复-y 0.3.7,nREPL 0.2.12 马科斯山脉


“project.clj”中有更多行吗?

可能重复@HovercraftFullOfEels afaik lein创建了两个JVM,一个用于自身,一个用于程序,当程序崩溃时会发生这种情况,因此连接被关闭。我认为无论哪种方式,它都是不相关的,因为唯一的共同点是异常类型。我不是这类异常的专家,这就是为什么我没有“重复”你的问题,但我知道当套接字从另一侧关闭时,异常会发生。我不知道。我也做了一个项目只是为了测试,但它崩溃了。非常感谢您对其进行测试。也许我应该尝试重新安装JVM+JDK,而不仅仅是更新。不幸的是,它没有帮助。我认为这越来越与nREPL有关。再次感谢!不客气!似乎这是相关的你能检查一下你的lein profil吗?我没有类似的东西。事实上,我甚至不能创建一个框架。仅仅调用构造函数就会使程序崩溃。我也不能在虚拟盒中的Windows上复制它。您是否尝试卸载Leinengen?