2
我知道,有很多類似的問題,我想我已閱讀並檢查了所有的可能性,而且不知道我做錯了什麼......可執行的JAR - 從項目資源加載信任
我加載到系統屬性來自項目資源包中的兩個證書文件,並且將它們連接到JMS服務器。當在Eclipse中運行的應用程序模式,一切工作正常,問題試圖從運行的JAR文件中讀取資源時occurres,它會導致一個錯誤:
FileNotFoundException: file:\path_to_my_jar!\resources\serverids.jks
的文件是內部罐子的地方(在主文件夾)。這個文件夾被放置在src/resources
中,但我已經嘗試在src之外創建資源文件夾並將其鏈接到具有相同結果的構建路徑。
這是我正在讀的文件和設置的ConnectionManager屬性:
ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
String keyStore = currentClassLoader.getResource("resources/serverids.jks").getPath();
String trustStore = currentClassLoader.getResource("resources/server.truststore").getPath();
System.setProperty("javax.net.ssl.keyStore", keyStore);
System.setProperty("javax.net.ssl.keyStorePassword", "pass");
System.setProperty("javax.net.ssl.trustStore", trustStore);
System.setProperty("javax.net.ssl.trustStorePassword", "pass");
不幸的是,它也會導致空指針異常;/ 我想知道如果它可能是這個JMS證書的問題,他們不能作爲流加載?但是像C:/ temp/etc這樣的文件的絕對路徑可以正常工作(但這是一個糟糕的解決方案....) – argh
你應該做的是在調試模式下爲資源嘗試不同的路徑(在檢查模式期間) - 這會讓你更快找到如何獲得所需的資源。 – user
@argh,只有西斯使用絕對......使用相對路徑盧克.. – user