【发布时间】:2015-09-18 11:44:40
【问题描述】:
我知道有很多类似的问题,我想我已经阅读并检查了所有可能性并且不知道我做错了什么......
我正在将项目资源包中的两个证书文件加载到系统属性,然后将它们连接到 JMS 服务器。在 Eclipse 模式下运行应用程序时一切正常,尝试从可运行的 JAR 文件中读取资源时出现问题,它会导致错误:
FileNotFoundException: file:\path_to_my_jar!\resources\serverids.jks
文件位于 jar 内(在主文件夹中)。此文件夹位于src/resources,但我尝试在 src 外部创建资源文件夹并将其链接到构建路径,结果相同。
这就是我读取文件并为 connectionManager 设置属性的方式:
ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
String keyStore = currentClassLoader.getResource("resources/serverids.jks").getPath();
String trustStore = currentClassLoader.getResource("resources/server.truststore").getPath();
System.setProperty("javax.net.ssl.keyStore", keyStore);
System.setProperty("javax.net.ssl.keyStorePassword", "pass");
System.setProperty("javax.net.ssl.trustStore", trustStore);
System.setProperty("javax.net.ssl.trustStorePassword", "pass");
【问题讨论】:
标签: java classloader executable-jar runnable truststore