我使用ssl来保护客户端和服务器之间的RMI和JMS通信。我将keyStore和trustStore文件添加到我的项目的资源文件夹中。当项目通过Netbeans运行时,使用以下代码加载这些文件没有任何问题:
System.setProperty("javax.net.ssl.keyStore", "src/main/resources/certificates/keyStore.ks");
System.setProperty("javax.net.ssl.keyStorePassword", "pass");
System.setProperty("javax.net.ssl.trustStore", "src/main/resources/certificates/trustStore.ts");
System.setProperty("javax.net.ssl.trustStorePassword", "pass");
但是,当我通过其jar文件运行此项目时,无法加载这些文件。
是否有任何替代方法来配置SSL而不是使用System.setProperty()并指定keyStore和trustStore文件的路径?
此外,它适用于两种模式(通过Netbeans和Jar文件运行)。
答案 0 :(得分:1)
src
目录在运行时不存在。检查JAR文件的内容并亲自查看。你必须将它们放在其他地方,特别是不在JAR文件中,因为这些属性引用的是文件,而不是JAR文件中的资源。