[英]java refer a file inside project from runnable jar
我正在编写一个Java swings应用程序。 在应用程序中,我们需要保留一个证书文件以创建自定义sslContext
SSLContext sslcontext = SSLContexts.custom()
.loadTrustMaterial(new File("certs\\cacerts"),
"password".toCharArray(), new TrustSelfSignedStrategy())
.build();
我在项目内部创建了文件夹“certs”
,并将文件“cacerts”
存储在该文件夹中。 当我从Eclipse运行应用程序时,这工作正常。 但是,当我将应用程序打包为可运行的jar文件时,java无法获取文件“ certs \\ cacerts”。 它抛出filenotfound异常。
但是,当我将“\\\\”
更改为“//”
时,如果我保留jar文件所在的文件夹“certs”
并在其中存储“cacerts
”文件,则可以正常工作。 代码如下所示,
SSLContext sslcontext = SSLContexts.custom()
.loadTrustMaterial(new File("certs//cacerts"),
"password".toCharArray(), new TrustSelfSignedStrategy())
.build();
我假设您正在使用Apache的SSLContextBuilder
。 您可以从URL
加载而不是从File
加载信任材料。 Oracle教程“ 访问资源”中介绍了如何获取内置文件的URL
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.