我使用JSSE和有下面的代碼:FileNotFound與.jar和JSSE
private static void setupServerKeystore() throws GeneralSecurityException, IOException {
mServerKeyStore = KeyStore.getInstance("JKS");
mServerKeyStore.load(new FileInputStream(iComputer.class.getClassLoader().getResource("res/server.public").getPath()),
"pswd".toCharArray());
}
private static void setupClientKeyStore() throws GeneralSecurityException, IOException {
mClientKeyStore = KeyStore.getInstance("JKS");
mClientKeyStore.load(new FileInputStream(iComputer.class.getClassLoader().getResource("res/client.private").getPath()),
mPassphrase.toCharArray());
}
這裏是我的文件夾結構:
- iComputer
- src
- com
- ...
- res
- server.public
- client.private
在Eclipse兩個URL的工作,並在客戶端執行握手成功。但是,當我出口這是一個.jar文件,我得到一個FileNotFoundException異常:
> java.io.FileNotFoundException:
> file:/Users/Zack/Downloads/iComputer.jar!/res/server.public (No
> such file or directory)
我一直在試圖弄清楚這一點對於沒有運氣小時。任何幫助將非常感激。
嘗試unzip -l iComputer.jar並確保您的結構是正確的。如果一切看起來不錯,你用什麼命令來執行它? – 2015-04-02 04:50:01
而不是嘗試創建一個'FileInputStream',只需使用'getResourceAsStream'(而不是'getResource')並使用返回的'InputStream' – 2015-04-02 05:20:14
@peeskillet,已經認爲這是一個選項。出於某種原因,我得到了一個「錯誤錯誤:sun.security.validator.ValidatorException:沒有發現可信任的證書」 – Zack 2015-04-02 11:40:57