2012-12-05 62 views
0

我正面臨一個帶有可執行文件的文件夾問題。加載可執行文件夾中的資源

其實我想打電話給

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

加載密鑰庫。 因爲setProperty需要一個String來訪問文件。

我的資源文件夾位於Eclipse的/ src文件夾內。 在Eclipse中工作時一切正常,但如果我想創建可執行的jar文件,即使資源文件夾也存在,路徑不正確。

編輯:打印路徑時,另一個有趣的事情: 在Eclipse:文件:/ C:/用戶/ Xenom /工作區/ eBankingRMI /斌/資源/信任

在罐子中:jar:文件:/ C :/Users/Xenom/Desktop/ClientBanking.jar /資源/信任

所以很明顯的setProperty無法讀取第二個...

+0

我懷疑* API正在尋找一個'File'而不是'URL'參考 – MadProgrammer

+0

事實上,最好的辦法是給出一個像/ resources/keystore這樣的相對路徑,但是如果我直接在setProperty I得到一個java.io.FileNotFoundException:\ resources \ keystore(系統找不到指定的路徑).. – xenom

+0

解壓縮創建的jar並查看內部文件夾結構 – Wes

回答

0

沒有保證的資源URL一個實際的文件系統相匹配!文件。在大多數情況下,它不會出現在罐子或戰爭中。

如果你的API絕對需要一個文件(和AFAIK keystore),你需要抓取該URL並將其流式傳輸到一個實際的文件系統文件,然後用它來設置屬性。

相關問題