我想通过HttpURLConnection连接到一个站点。首先,我偶然遇到了 javax.net.ssl.SSLHandshakeException,因为我忘记了通过 keytool -importcert 为./lib/security下的站点添加证书。在那之后,连接可以轻松建立。
然而,今天它不再工作了,没有改变代码或其他任何东西。似乎抛出了以下异常:
javax.net.ssl.SSLException: Unexpected error: java.security.InvalidAlgorithmParameterException: the
trustAnchors parameter must be non-empty
尽管网上有很多可能的解决方案,但没有一个能让我摆脱这个错误。
也许在eclipse中需要做一些设置?
1条答案
按热度按时间wpx232ag1#
更新!
我所有的JDK和JRE都有到
/etc/ssl/certs/java/cacerts
的错误符号链接,这似乎是根本原因。在我的系统上,JDK安装到/usr/opt
中,但安装程序致命地期望能够通过错误的相对路径访问符号链接:但是您需要弄清楚JVM安装在哪里。在我的Debian笔记本电脑上,它们是
/usr/lib/jvm
。因此,为了解决这个问题,而不必重新安装,我建议如下。
1.首先要确定这是真正的原因。做一个长的列表,并确保您看到的是断开的符号链接。(如果你有
alias ls='ls --color=auto'
,它们会令人不安地 Flink 红色)如果您看到这些标记一直 Flink 到几天结束,那么您可以首先以普通用户的身份进行测试(您应该获得权限拒绝),然后以root身份运行它。将路径和模式更改为与系统匹配的模式
原始答案
我正在运行Gentoo Linux,我终于解决了这个问题.等待它...重新安装
dev-java/icedtea
!我觉得这是一个超级蹩脚的答案,但这是唯一有效的方法。很多人都有这个问题,我希望这能帮助到一些人。我记得几年前在OpenJDK或icedtea项目中阅读过一个关于这个问题的bug报告,但我再也找不到了。我假设重新安装工作,因为我不知何故有旧的jar与错误和新版本的修复,但我不能100%肯定。具体来说,我跑了:
如果你使用Ubuntu,Debian等。我假设你会想要
apt install --reinstall openjdk-8-jre
或者你的Java 8包的名字。