繁体   English   中英

Java从可运行的jar中引用项目内部的文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM