找不到 SNIServerName class

Cannot find SNIServerName class

我正在使用 javax.net.ssl.HttpsURLConnection 处理 SSL 连接。我从 java 1.7 升级到 java 1.8。我需要使用 javax.net.ssl.SSLParameters.setServerNames(List<SNIServerName> serverNames) 在 SSLParameters 中设置 SNI 主机名。但是编译器无法解析 class SNIServerName。编译器显示此错误:

unable to resolve class javax.net.ssl.SNIServerName

我的 java 版本:

java version "1.8.0_121" Java(TM) SE Runtime
Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM
(build 25.121-b13, mixed mode)

如何导入 SNIServerName 或 SNIHostName?据我所知,它们已在 Java 8 中引入。我的 java 版本有问题吗?

只需确保您的 JAVA_HOME 配置正确。只需按照下面提到的步骤

vim ~/.bashrc
JAVA_HOME = <path to your java8 bin>
PATH = $JAVA_HOME:$PATH
save this and then
source ~/.bashrc

之后只需在您的终端上通过 $JAVA_HOME 进行验证。