You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fiji/ImageJ更新失败:java.net.URLConnection HTTP/HTTPS连接异常

调试Fiji/ImageJ更新失败问题

问题背景

本地Fiji/ImageJ安装无法通过「帮助→更新UI」完成更新,触发问题的代码位于ImageJ的swing更新模块中(对应ImageJUpdater.java的360-370行)。

最小复现测试用例

将JAVA_HOME指向Fiji/ImageJ自带的JDK目录:

/Applications/Fiji.app/java/macosx/zulu8.60.0.21-ca-fx-jdk8.0.322-macosx_x64/jre/Contents/Home

测试代码:

import java.net.URL;
import java.net.URLConnection;
import java.io.IOException;
import java.net.HttpURLConnection;

class HelloWorld {
    public static void main(String[] args) {
        try {
            final URL url = new URL("http://neverssl.com");
            final URLConnection urlConn = url.openConnection();
            final HttpURLConnection httpConn = (HttpURLConnection) urlConn;

            final int code = httpConn.getResponseCode();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }
}

错误日志

HTTP地址请求错误

java.io.IOException: Error writing to server
    at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:705)
    at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:717)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1598)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1505)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
    at HelloWorld.main(HelloWorld.java:14)

HTTPS地址请求错误

javax.net.ssl.SSLException: Couldn't kickstart handshaking
    at sun.security.ssl.Alert.createSSLException(Alert.java:127)
    at sun.security.ssl.TransportContext.fatal(TransportContext.java:348)
    at sun.security.ssl.TransportContext.fatal(TransportContext.java:291)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:449)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:410)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1577)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1505)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:352)
    at HelloWorld.main(HelloWorld.java:14)
    Suppressed: java.net.SocketException: Broken pipe (Write failed)
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
        at sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
        at sun.security.ssl.TransportContext.fatal(TransportContext.java:379)
        ... 10 more
Caused by: java.net.SocketException: Broken pipe (Write failed)
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
    at sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:251)
    at sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89)
    at sun.security.ssl.ClientHello$ClientHelloKickstartProducer.produce(ClientHello.java:580)
    at sun.security.ssl.SSLHandshake.kickstart(SSLHandshake.java:510)
    at sun.security.ssl.ClientHandshakeContext.kickstart(ClientHandshakeContext.java:112)
    at sun.security.ssl.TransportContext.kickstart(TransportContext.java:231)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:432)
    ... 8 more

网络抓包分析

对比故障机器与正常机器的tcpdump结果,发现故障机器会在发送PSH包前提前发送FIN包,推测问题与连接提前关闭有关。在另一台同版本OS X机器上,指向相同JAVA_HOME目录运行同一测试代码则无异常。

内容的提问来源于stack exchange,提问作者SidSethupathi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 15:00:42