0

我正面临带有可执行 jar 的文件夹问题。

其实我想打电话

    URL keystoreURL = ServerGUI.class.getResource("/resources/keystore");
    String keystorePath = keystoreURL.getPath();
    System.setProperty("javax.net.ssl.keyStore",keystorePath);

加载密钥库。因为 setProperty 想要一个字符串来访问文件。

我的资源文件夹位于 Eclipse 的 /src 文件夹中。在 Eclipse 中工作时一切正常,但如果我想创建一个可执行的 jar 文件,即使资源文件夹也存在,路径也不正确。

编辑:打印路径时另一个有趣的事情:在 Eclipse 中:file:/C:/Users/Xenom/workspace/eBankingRMI/bin/resources/truststore

在 jar 中:jar:file:/C:/Users/Xenom/Desktop/ClientBanking.jar!/resources/truststore

很明显 setProperty 无法读取第二个...

4

1 回答 1

0

不能保证资源 URL 与实际的文件系统文件匹配。大多数情况下,罐子或战争中不会出现这种情况。

如果您的 API 绝对需要一个文件(AFAIK 密钥库确实需要),您需要获取该 URL 并将其流式传输到一个实际的文件系统文件,然后使用它来设置属性。

于 2012-12-06T00:08:50.180 回答