在可执行jar中加载资源

时间:2012-12-05 23:43:43

标签: java eclipse jar

我遇到了带有可执行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无法读取第二个......

1 个答案:

答案 0 :(得分:0)

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

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