1.错误代码
果然,换新电脑就是问题多。
今天从官网下载了jdk 1.8.0_251版本,之前用的是jdk 1.8.0_188版本,然后在执行下面代码时,就报错了!
new OkHttpClient().newBuilder()
.sslSocketFactory(sslContext.getSocketFactory(), Platform.get().trustManager(sslContext.getSocketFactory()))
.build();
报错:
clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on JDK 9+
我这是新电脑,从没装过啥jdk 9。
2.分析
打个断点调试一下,发现是在执行 Platform.get().trustManager() 时报错了,这个get()方法会返回 Platform对象。
public class Platform {
private static final Platform PLATFORM = findPlatform();
public static final int INFO = 4;
public static final int WARN = 5;
private static final Logger logger = Logger.getLogger(OkHttpClient.class.getName());
public static Platform get() {
return PLATFORM;
}
}
而这个对象有4个子类:
<