Java - 无法通过 url 读取图像

我一直在到处寻找答案,但没有任何帮助。


那是我的代码:


BufferedImage img1 = ImageIO.read(new File(dir1));

URL url = new URL(image_srcURL);

BufferedImage img2 = 

ImageIO.read(url.openStream());

现在,当我尝试读取 url 时,出现以下异常。


javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法在 java.base/sun.security.ssl 找到请求目标的有效认证路径.Alerts.getSSLException(Alerts.java:198) 在 java.base/sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1974) 在 java.base/sun.security.ssl.Handshaker.fatalSE(Handshaker.java :345) 在 java.base/sun.security.ssl.Handshaker.fatalSE(Handshaker.java:339) 在 java.base/sun.security.ssl.ClientHandshaker.checkServerCerts(ClientHandshaker.java:1968) 在 java.base/ sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1777) 在 java.base/sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:264) 在 java.base/sun。security.ssl.Handshaker.processLoop(Handshaker.java:1098) 在 java.base/sun.security.ssl.Handshaker.processRecord(Handshaker.java:1026) 在 java.base/sun.security.ssl.SSLSocketImpl.processInputRecord( SSLSocketImpl.java:1137) 在 java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1074) 在 java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) 在 java .base/sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1402) 在 java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1429) 在 java.base/sun.security.ssl .SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413) 在 java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567) 在 

任何帮助都会很棒。我正在尝试读取 url 中的图像并将其与现有文件进行比较。这里没有任何问题可以给出答案。


编辑:


我尝试在我的命令行中输入“keytool -list -keystore keystore”,但它只显示了trustedCertEntries。尚无解决方案。


30秒到达战场
浏览 371回答 3
3回答

人到中年有点甜

首先需要获取服务器的证书,将其添加到keystone文件中,或者添加到jre中的java truststore或者单独的文件中。如果您要创建新的信任库,请确保为您的程序提供信任库
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java