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

Maven构建报错:clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on JDK 9+ 解决方案求助

解决'clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on JDK 9+'错误(JDK8环境下)

看起来你遇到了一个有点矛盾的问题——明明本地配置的是JDK8,却触发了JDK9+才会出现的SSL方法不支持提示。结合你的环境和POM配置,我整理了几个针对性的解决方案:

1. 确认Eclipse项目的JRE配置是否正确

这是最常见的触发原因:Eclipse可能默认用了JDK9+的JRE来构建项目,哪怕你本地装的是JDK8。

  • 右键你的项目 → Properties → Java Build Path → Libraries
    • 检查JRE System Library是否指向JDK8,要是不对就点击Edit选择正确的JDK8安装路径
  • 切换到Java Compiler选项卡,确保Compiler compliance level设置为1.8,并且勾选Use compliance from execution environment on the 'Java Build Path'

2. 检查Maven运行时的JDK版本

Eclipse里的Maven可能没使用你指定的JDK8:

  • 打开Window → Preferences → Maven → Installations
    • 选中你正在用的Apache Maven 3.0.5,点击Edit,确认JRE选择的是JDK8
  • 也可以在运行Maven构建时临时指定:右键项目 → Run As → Run Configurations → 找到你的Maven Build配置 → 切换到JRE选项卡,选择JDK8

3. 升级rest-assured依赖版本

你当前用的rest-assured:3.0.6依赖的Apache HttpClient版本存在JDK兼容性问题,这个版本的HttpClient在JDK8环境下可能会错误触发JDK9+的API检查。建议升级到更稳定的版本:
修改POM中的rest-assured依赖:

<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>4.4.1</version>
</dependency>

这个版本对JDK8的兼容性更好,能避免这类SSL相关的错误。

4. 强制指定兼容的Apache HttpClient版本

如果不想升级rest-assured,可以在POM中直接添加HttpClient的依赖,强制使用兼容JDK8的版本(比如4.5.13),覆盖rest-assured默认依赖的版本:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version>
</dependency>

错误原因补充

这个错误本质上是因为clientBuilder.sslSocketFactory(SSLSocketFactory)方法在JDK9+中被废弃,且引入了新的替代方法。但你用JDK8本该不会触发这个提示,大概率是构建环境的JRE版本不匹配,或者依赖库的版本冲突导致代码错误调用了JDK9+的API逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:27:36