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

Jsoup连接异常求助:重置环境后connect()抛出Socket异常

Fixing Jsoup connect() Socket Exception After Switching to JDK 8 on Windows 8 32-bit

Hey there, let's break down why you're hitting that Socket exception with Jsoup after your system and JDK downgrade, and walk through actionable fixes:

Common Causes & Solutions

1. TLS Version Compatibility Gap

JDK 9 added native support for newer TLS protocols like TLS 1.3, but JDK 8 defaults to older standards (sometimes even TLS 1.0/1.1, which most modern websites have phased out). When Jsoup tries to connect to a site requiring TLS 1.2+, it fails to negotiate a secure connection, triggering the Socket exception.

Fix: Force Jsoup to use TLS 1.2 by customizing the SSL context. Here's a practical code snippet:

import org.jsoup.Jsoup;
import org.jsoup.Connection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.cert.X509Certificate;

public class JsoupTLSFix {
    public static void main(String[] args) throws Exception {
        // Trust manager (adjust for production by adding proper cert validation!)
        TrustManager[] trustAllCerts = new TrustManager[]{
            new X509TrustManager() {
                public X509Certificate[] getAcceptedIssuers() { return null; }
                public void checkClientTrusted(X509Certificate[] certs, String authType) {}
                public void checkServerTrusted(X509Certificate[] certs, String authType) {}
            }
        };

        // Initialize TLS 1.2 context
        SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
        sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
        SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

        // Attach custom SSL factory to Jsoup connection
        Connection connection = Jsoup.connect("https://your-target-url.com")
            .sslSocketFactory(sslSocketFactory);
        
        // Proceed with your scraping logic
        connection.get();
    }
}

Note: For production environments, replace the trust-all manager with proper certificate validation to avoid security risks.

2. Proxy Configuration Mismatch

After the Windows reinstall, your system proxy settings might have changed, or JDK 8 isn't picking them up correctly. Jsoup relies on system proxy settings by default, so a misconfigured proxy can block connections.

Fix:

  • Verify your system proxy settings (Control Panel > Internet Options > Connections > LAN Settings)
  • Explicitly set a proxy in Jsoup if required:
    Jsoup.connect("https://your-target-url.com")
        .proxy("proxy-host", proxy-port)
        .get();
    
  • If no proxy is needed, clear proxy properties:
    System.setProperty("http.proxyHost", "");
    System.setProperty("http.proxyPort", "");
    System.setProperty("https.proxyHost", "");
    System.setProperty("https.proxyPort", "");
    

3. Jsoup Version Compatibility

If you were using a JDK 9-specific build of Jsoup, it might have unforeseen issues running on JDK 8. Most recent Jsoup versions support JDK 8, but it's worth confirming your dependency version.

Fix:

  • Use a Jsoup version explicitly compatible with JDK 8 (e.g., 1.14.3 or later). Update your build file:
    For Maven:
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.17.2</version> <!-- Latest stable, JDK 8+ compatible -->
    </dependency>
    

4. Windows Firewall/Security Software Blocking

Fresh Windows 8 installs often have strict firewall rules that block outgoing network requests from Java apps. Third-party security tools might also be interfering.

Fix:

  • Open Windows Firewall > Advanced Settings > Outbound Rules
  • Create a new rule allowing your Java executable (or IDE, if running from there) to access the internet
  • Temporarily disable third-party security software to test if it's the blocker

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:37:47