我正在编写一个java swings应用程序。在应用程序中,我们需要保留证书文件以创建自定义sslContext
SSLContext sslcontext = SSLContexts.custom()
.loadTrustMaterial(new File("certs\\cacerts"),
"password".toCharArray(), new TrustSelfSignedStrategy())
.build();
我在项目中创建了文件夹“certs”
,并将文件“cacerts”
存储在该文件夹中。当我从eclipse运行应用程序时,这工作正常。但是当我将app打包为可运行的jar文件时,java没有获取文件“certs \ cacerts”。它抛出了filenotfound异常。
但是,当我将“\\”
更改为“//”
时,如果我保留了jar文件所在的文件夹“certs”
并保存“cacerts
“文件在那。代码如下所示,
SSLContext sslcontext = SSLContexts.custom()
.loadTrustMaterial(new File("certs//cacerts"),
"password".toCharArray(), new TrustSelfSignedStrategy())
.build();
答案 0 :(得分:0)
我假设您正在使用Apache的SSLContextBuilder
。您可以load it from a URL
而不是从File
加载信任材料。 Oracle教程Access to Resources中介绍了为jar文件获取URL
。