我遇到了带有可执行jar的文件夹问题。
实际上我想打电话
URL keystoreURL = ServerGUI.class.getResource("/resources/keystore");
String keystorePath = keystoreURL.getPath();
System.setProperty("javax.net.ssl.keyStore",keystorePath);
加载keyStore。 因为setProperty想要一个String来访问该文件。
我的资源文件夹位于Eclipse的/ src文件夹中。 在Eclipse内部工作时一切正常,但如果我想创建一个可执行jar文件,即使资源文件夹也存在,Path也不正确。
编辑:打印路径时另一个有趣的事情: 在Eclipse中:file:/ C:/ Users / Xenom / workspace / eBankingRMI / bin / resources / truststore
在jar:jar:file:/ C:/Users/Xenom/Desktop/ClientBanking.jar!/ resources / truststore
很明显setProperty无法读取第二个......
答案 0 :(得分:0)
无法保证资源URL与实际文件系统文件匹配。在大多数情况下,罐子或战争都不会出现这种情况。
如果您的API绝对需要文件(和AFAIK密钥库一样),您需要获取该URL并将其流式传输到实际的文件系统文件,然后使用它来设置属性。