0

実行可能なjarを含むフォルダーの問題に直面しています。

実は電話したい

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

キーストアをロードします。setProperty は String でファイルにアクセスする必要があるためです。

私のリソース フォルダーは、Eclipse の /src フォルダー内にあります。Eclipse 内で作業する場合はすべて機能しますが、実行可能な jar ファイルを作成する場合、リソース フォルダーも存在する場合でもパスが正しくありません。

編集: パスを印刷するときのもう 1 つの興味深い点: Eclipse の場合: file:/C:/Users/Xenom/workspace/eBankingRMI/bin/resources/truststore

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

明らかに setProperty は2番目のものを読み取ることができません...

4

1 に答える 1

0

リソース URL が実際のファイル システム ファイルと一致するという保証はありません。ほとんどの場合、瓶や戦争には当てはまりません。

API が絶対にファイルを必要とする場合 (AFAIK キーストアが必要な場合)、その URL を取得して実際のファイルシステム ファイルにストリーミングし、それを使用してプロパティを設定する必要があります。

于 2012-12-06T00:08:50.180 に答える