我在Eclipse oxygen 4.7.0,java 1.8上收到此错误
clientBuilder.sslSocketFactory 在 JDK 9+ 上不受支持
与日食有关,专家..尝试更新 Maven : Alt+f5 模块 okhttp3 尝试连接..解析/处理聚甲醛时
我根本没有JDK9。 查看了所有其他关于stackoverflow的类似报告,没有一个是相关的。
你可以在JDK8 的 Eclipse bug 517113 中找到类似的问题。
错误调用堆栈指示使用 OpenJDK 编译的库的外部依赖项
如此处所示,还要检查 Eclipse 中的 JDK 声明
我更改了使用 JAVA_HOME 作为 SonarScanner 包附带的 JRE 的代码.
一旦我将其更改为默认JAVA_HOME,它就开始正常工作。
其他可能的原因:错误的依赖,如PR 3066或此问题所示。
我认为您正在使用JDK 9运行Eclipse Oxygen。
如果你不想,那么我有一个解决方案。
通过添加-vm
参数.ini更新日食/日食:
-startup
plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.700.v20180518-1200
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
C:/Program Files/Java/jdk1.8.0_251/bin
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms256m
-Xmx1024m
--add-modules=ALL-SYSTEM
这个.ini文件来自我最新的日食。其他版本可能会有所不同。
这将强制 eclipse 从您添加的 JDK 开始。
注意:-Dosgi.requiredJavaVersion=1.8
将为您提供有关 eclipse 可以支持的 Java 版本的信息。
如果有人在运行 Azul 的 zulu8 打开 jdk 时遇到这个问题,请尝试将 zulu8 jdk 的 3-4 个版本放在最新版本后面。这对我有用。
检查您的 OkHttpClient.Builder((,更改代码
sslSocketFactory(SSLSocketFactory sslSocketFactory)
自
sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager)
例如:
// define sslContext ...
new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory(), new JEEX509TrustManager()).build();
然后一切都会好起来的。
Java 8有两个版本,如下所示:
- Java SE 8(8u211 及更高版本(
- Java SE 8(8u202 及更早版本(
因此,如果您安装了"Java SE 8(8u211 及更高版本(",您将收到错误:在 eclipse oxygen 中的 JDK 9+ 上不支持 clientBuilder.sslSocketFactory。 为避免此错误,请从以下链接安装"Java SE 8(8u202 及更早版本("https://www.oracle.com/java/technologies/downloads/archive/
我按照以下步骤删除了此错误: 早期代码:
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.sslSocketFactory(sslSocketFactory);
新代码:
OkHttpClient.Builder builder = new OkHttpClient.Builder();
X509TrustManager trustManager = new X509DeployTrustManager();
builder.sslSocketFactory(sslSocketFactory);